我正在尝试监听集合的单个文档中的更改,但我无法让它工作。
Widget build(BuildContext context) {
return StreamBuilder(
stream: Firestore.instance.collection("events").document(widget.documentID).get().asStream(),
...
}
}
我正在使用 .asStream() 方法,但我只获取一次文档。如果我在 Firebase 控制台中更改数据,除非我重新打开 View ,否则不会有任何更新。
有没有办法做到这一点?
最佳答案
您只获得一次文档的原因是因为 DocumentReference.get
方法最初只返回一个 Future
并且使用 asStream
只会返回那个 one single Future
到 Stream
。
cloud_firestore
包,但是,有一个内置的方法来正确监听文档。
您可以使用DocumentReference.snapshots
相反,它会返回该文档每次更改的 Stream
。
在您的代码中,您只需将 .get().asStream()
替换为 .snapshots()
。
关于firebase - 我可以使用 StreamBuilder 在 Firestore 中收听单个文档吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56509221/