Firebase使用Flutter读取文档计数

时间:2020-09-20 16:21:20

标签: firebase flutter google-cloud-firestore

如果在等待状态下等待一次,则在Firebase中读取了多少内容,我运行了一个循环,总共有20个文档,但是我的循环将在检查后过滤掉一些文档。检查后将需要10个数据。但是要拍摄,它需要阅读20个文档。那么它会计数多少次阅读?我听到有人在等一读。但是我的Firebase仪表板显示的速度是原来的5/6倍。在图片中我显示了代码。 请告诉我该阅读多少计数?

  Future getUser() async {
    final id = await FirebaseAuth.instance.currentUser();
    userId=id.uid;
    await Firestore.instance.collection('user').getDocuments().then((users) {
      print("loop running");
      for (var user in users.documents) {
        if ((!seenList1.contains(user.documentID)) &&
            (!chosenList1.contains(user.documentID)) &&
            (!showId1.contains(user.documentID)) &&
            (user.documentID != userId) &&
            ("male" == user['gender'])

        ) {


          loc(user['Location'].latitude, user['Location'].longitude).then((result){
            if(result==true){
              setState(() {

                showId1.add(user.documentID)  ;
                showName1.add(user['name']) ;   }

          });

        }
      }
    });
    return ;
  }

1 个答案:

答案 0 :(得分:0)

getDocuments()的调用确定读取了多少文档。因此,在您的情况下:

Firestore.instance.collection('user').getDocuments()

这意味着将读取user集合中的所有文档。如果这些文档还不在设备的本地缓存中,则Firestore必须在服务器上读取它们并将它们返回给客户端。

所以说您的缓存是空的:这意味着您需要向user集合中的每个文档收取读取费用,以及用于下载这些文档的总带宽。