我有以下函数,它从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() ?? {});
}
类似的东西。