whereIn 10 限制 Flutter

时间:2021-05-17 10:07:34

标签: firebase flutter google-cloud-firestore

我正在尝试构建一个查询,以帮助我为所有当前关注的用户构建票证, 但是当列表越来越大(超过 10)时,它给了我一个错误,即 10 是限制。 这是代码:

buildFollowingTickets() {
    if (!widget.followingList.isEmpty) {
      return FutureBuilder(
        future: userRef.where('id', whereIn: widget.followingList).get(),
        builder: (context, snapshot) {
          if (!snapshot.hasData) {
            return loading();
          }

          List<UserTicket> userFollowing = [];
          final followings = snapshot.data.docs;
          for (var following in followings) {
            final id = following.data()['id'];
            final displayName = following.data()['displayName'];
            final photoUrl = following.data()['photoUrl'];
            final UserTicket userTicket = UserTicket(
              displayName: displayName,
              photoUrl: photoUrl,
              id: id,
            );
            userFollowing.add(userTicket);
          }
          return ListView(
            children: userFollowing,
          );
        },
      );
    }
  }

WhereIn 只能查找低于 10 的列表,我正在尝试找出如何更改它... 提前致谢!

1 个答案:

答案 0 :(得分:0)

谢谢! 我决定把它改成一个流构建器,现在它可以工作了——我也稍微改变了我的数据库

buildFollowersTickets() {
    if (!widget.followersList.isEmpty) {
      return StreamBuilder(
        stream: followersRef
            .doc(widget.followersId)
            .collection('userFollowers')
            .orderBy('displayName', descending: false)
            .snapshots(),
        builder: (context, snapshot) {
          if (!snapshot.hasData) {
            return loading();
          }

          List<UserTicket> userFollowers = [];
          final followers = snapshot.data.docs;
          for (var follower in followers) {
            final id = follower.data()['id'];
            final displayName = follower.data()['displayName'];
            final photoUrl = follower.data()['photoUrl'];
            final UserTicket userTicket = UserTicket(
              displayName: displayName,
              photoUrl: photoUrl,
              id: id,
            );
            userFollowers.add(userTicket);
          }
          return ListView(
            children: userFollowers,
          );
        },
      );
    }
  }
相关问题