监听Firestore上的文档更改,并为StreamBuilder创建一个对象流



我有以下函数,它从Firestore获取产品文档,用于FutureBuilder

Future<Product> getProduct(String productId) async {
var ref = _db.collection('products').doc(productId);
var snapshot = await ref.get();
return Product.fromJson(snapshot.data() ?? {});
}

我可以实现相同的功能,但使用StreamBuilder,以便在文档发生更改时随时调用构建方法?

Stream<Product> listenToProduct(String productId) {
?
};

好吧,这似乎有效:

Stream<Product> listenToProduct(String productId) {
return _db.collection('products')
.doc(productId)
.snapshots()
.map((snapshot) => Product.fromJson(snapshot.data()!));
}
Stream<Product> listenToProduct(String productId) {
return _db.collection('products').doc(productId).snapshots()
.listen((event) => Product.fromJson(event.data() ?? {});
}

类似的东西。

相关内容

最新更新