在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/