firebase - 如何使用Firebase Firestore进行一次性简单查询?

标签 firebase flutter dart google-cloud-firestore

在Dart / Flutter中并学习Firebase Firestore ...在创建UI之前,我使用以下方法进行测试:

_testFireStore() async {
  var result = Firestore.instance
      .collection('users')
      .where('uid', isEqualTo: 'IvBEiD990Vh0D9t24l2GCCdsrAf1')
      .snapshots();

  await for (var snapshot in result) {
    for (var user in snapshot.documents) {
      print('main.DEBUG: ' + user.data.toString());
    }
  }
}

它按预期方式工作-最初执行print语句,但每次在Firestore数据库中的文档中的任何字段更新时,都随后实时执行。

如何更改此代码,以使快照仅被检索一次-而不是“订阅/侦听”到...,这样我们就不会在不需要/不需要的数据上浪费带宽,而print语句仅执行一次?

最佳答案

Firestore.instance.collection(...).where(...)返回Query对象。它具有一种称为getDocuments()的方法,该方法执行查询并为您提供带有一组结果的Future。

var query = Firestore.instance
    .collection('users')
    .where('uid', isEqualTo: 'IvBEiD990Vh0D9t24l2GCCdsrAf1');
query.getDocuments().then((QuerySnapshot snapshot) {
    // handle the results here
})

或使用await获取QuerySnapshot,因为getDocumets()返回Future。

关于firebase - 如何使用Firebase Firestore进行一次性简单查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60444417/

相关文章:

java - 如何获取父节点的值作为字符串?

flutter - 如何获得Dart运行时的代码覆盖率?

android - Firebase 消息传递 - 什么 "content_available": true

python - 我在 Firestore 中执行了多少次读取?

android - Flutter - 如何在android中自动启用位置服务?

firebase - 如何在 map() 中使用异步代码(Flutter、Firestore)

flutter - 如何调整TextField的宽度?

dart - dart 中可以有私有(private)构造函数吗?

android - 如何根据对象模型的内容使用自定义小部件创建ListView

javascript - 使用 Angular 5 在 firebase 中存储数据时无法读取未定义的属性 'push'