firebase - 我可以使用 StreamBuilder 在 Firestore 中收听单个文档吗?
问题描述
我正在尝试收听集合的单个文档中的更改,但无法使其正常工作。
Widget build(BuildContext context) {
return StreamBuilder(
stream: Firestore.instance.collection("events").document(widget.documentID).get().asStream(),
...
}
}
我正在使用.asStream()方法,但我只获取一次文档。如果我在 Firebase 控制台中更改数据,除非我重新打开视图,否则不会有任何更新。
有没有办法做到这一点?
解决方案
您只获取一次文档的原因是因为该DocumentReference.get
方法最初只返回 a并且Future
usingasStream
只会将该一个返回到. Future
Stream
但是,该cloud_firestore
软件包具有正确收听文档的内置方法。
您可以改用DocumentReference.snapshots
它,它会返回Stream
该文档的每次更改。
在您的代码中,您只需替换.get().asStream()
为.snapshots()
.
推荐阅读
- php - 防止将空字符串保存到数据库
- javascript - 在选择日期选择器值上动态显示 Morrise.js 悬停标签
- python - 从数组值中过滤字典
- amazon-web-services - 使用 Terraform for ECS 在 CloudWatch 中包含退出代码 1 事件
- javascript - Chrome 和 Edge 在选中时以不同方式处理设置为“不确定”的复选框
- c# - 如何在扩展方法中使用 automapper 实例 api
- c# - 将二维数组的索引 [0,0] 作为参数传递给设置字母“O”或“X”的方法
- angular - Angular(6)路由问题
- vue.js - 我可以向 v-for 发送不仅仅是使用 v-model 的值吗
- javascript - 如何在我的 javascript 代码中找到未履行的承诺?