gpt4 book ai didi

firebase - Firestore 中的 getDocuments() 和 snapshots() 有什么区别?

转载 作者:行者123 更新时间:2023-12-03 03:11:24 26 4
gpt4 key购买 nike

我对这两者之间的区别有点困惑。我的理解是 getDocuments 是 Future 的一种类型,似乎是根据查询获取整个文档。而另一方面,snapshots 是一种 Stream,如果我错了,请纠正我,我认为它代表了查询的结果?我需要对这个问题进行更具体的解释。我将包含一些代码片段作为示例以进行更多说明

getDocuments()

getUserById(String userId) async {
return await _firestore.collection("users").where("userId", isEqualTo: userId).getDocuments();
}

快照()

getUserById(String userId) async {
return await _firestore.collection("users").where("userId", isEqualTo: userId).snapshots();
}

那么有什么区别呢?

最佳答案

当您调用 getDocuments() 时,Firestore 客户端从服务器获取一次与查询匹配的文档。由于这可能需要一些时间,因此它返回 Future<QuerySnapshot> .

当您调用 snapshots() 时Firestore 客户端获取文档,然后继续监视服务器上的数据库以查找影响查询的更改。所以如果文档写在users影响您的查询的集合,您的代码将再次被调用。所以这会返回 QuerySnapshot 的流.

在这两种情况下,整个查询的结果都在 QuerySnapshot object 中。 .

我强烈建议阅读 getting data once 上的 Firestore 文档和 listening realtime updates .虽然它们不包含 Flutter 示例,但其中的解释同样适用于 Flutter 库。

关于firebase - Firestore 中的 getDocuments() 和 snapshots() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62610233/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com