firebase - 我可以使用 StreamBuilder 在 Firestore 中收听单个文档

我正在尝试监听集合的单个文档中的更改,但我无法让它工作。

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 FutureStream

cloud_firestore 包,但是,有一个内置的方法来正确监听文档。
您可以使用DocumentReference.snapshots相反,它会返回该文档每次更改的 Stream

在您的代码中,您只需将 .get().asStream() 替换为 .snapshots()

关于firebase - 我可以使用 StreamBuilder 在 Firestore 中收听单个文档吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56509221/

相关文章:

android - Gradle 失败可能是因为这个 Flutter 应用程序中的 AndroidX

flutter - Cocoapods 找不到 pod Firebase 的兼容版本

dart - 如何将卡片放入 sliver 应用栏

flutter - 在 Dart 中添加/减去迄今为止的月/年?

unicode - 在 Dart 中处理字素簇

dart - 在 Flutter 中,在 pubspec.yaml 文件中添加包的最佳方法是什么?

dart - 如何在 dart 中使用 request.send() 获取响应正文

flutter - 在 flutter 中将数据作为对象存储在共享首选项中

android - 长按时 flutter 触觉反馈

flutter - 如何在 flutter 中修复 'net::ERR_CLEARTEXT_NOT_