【发布时间】:2021-02-03 12:06:47
【问题描述】:
我有一个产品列表的 StreamProvider 和 Firestore 数据
StreamProvider<List<Product>>.value(
value: DatabaseService().products,
),
现在我有这个产品列表的详细信息页面 如果我单击详细信息页面的列表,我会向详细信息页面提供一个对象
DetailsPage(courseData: product)
我需要在此详细信息页面中创建一个赞成按钮,以便它也可以更改 Firestore 数据
if (voted) {
FirebaseFirestore.instance
.collection('products')
.doc('${widget.courseData.id}')
.update({"voteCount": widget.courseData.voteCount - 1});
} else {
FirebaseFirestore.instance
.collection('products')
.doc('${widget.courseData.id}')
.update({"voteCount": widget.courseData.voteCount + 1});
}
isVoted = !isVoted;
} catch (e) {
print(e.message);
}
如果点击upvote按钮,这里的courseData不会改变,因为它的值不是来自streamProvider而是来自
详细信息页面(课程数据:产品)
我该如何解决这个问题
【问题讨论】:
标签: flutter dart google-cloud-firestore flutter-provider