firebase - Firebase Firestore 获取 Flutter 中的所有文档为空
问题描述
我想从集合中获取所有子文档和集合。
数据库结构:
代码片段:
_firestore.collection("messages").get().then((querySnapshot) => {getdata(querySnapshot)});
但querySnapshot.docs.length
始终为零。如何尝试从集合中获取所有数据?
解决方案
嗯,您当前的文档查询是什么样的?
您的文档的 id 有点令人困惑,但我认为标准查询应该可以工作。
注意:使用顺序键/数字作为文档和集合 ID 是危险的,并且会在以后给您带来很多问题。如果您自己没有生成唯一 ID,请让 Firestore 为您完成。Firebase - 最佳做法
例如
要收听messages/2/1
集合的变化:
final snapshotStream = FirebaseFirestore.instance
.collection('messages/2/1')
.snapshots()
.asBroadcastStream();
这将返回一个流,其中包含将“实时”更新的每个文档的快照。这.asBroadCastStream()
确保您可以向该流注册多个侦听器。(看起来你正在使用它作为某种聊天功能?)
一点额外的,一种访问流中所有文档的方法:
await for (final streamSnapshot in snapshotStream) {
final documentsList = streamSnapshot.docs;
/// Do something with documentsList
}
告诉我进展如何,祝你好运!:)
推荐阅读
- kubernetes - 在 Kubernetes 中什么是 deletecollection?
- c# - 我们可以从主对话框调用 QnA 机器人(对于 Null 意图)还是需要使用调度程序?
- php - 创建 JSON 时在 PHP 中使用 money_function()
- c++ - 我的代码中出现运行时错误,说明如何通过最多修改一个元素来查找数组是否可以变为非递减
- python - pathos.multiprocessing 为并行化随机模拟返回相同的值
- scala - Future[Future[Unit]] 是否与 Future[Unit] 相同。为什么?
- vb.net - 如何在 vb.net 中使用 API
- r - 解包并重新排列数据
- bash - 如何处理多个范围和单个数字的解析?
- python-3.x - 使用 ? 传递 URL 参数 进入 POST 请求