如何更新Cloud Firestore中不同集合中的相同数据?

发布时间:2020-07-07 15:43

我是ios新手开发人员。我一直在从事一个项目,并使用Cloud Firestore来存储数据。问题是,假设:

有两个不同的收藏集,即 用户和评论中两个文档都具有“评级”字段。

现在,每当用户给出评分时,我都希望将个人评分存储在“评论”集合中,并在“用户”收集中存储该用户的评分汇总。

这是用户对一项操作的两个单独的查询。如何处理这种情况。我应该进行单个查询并更新数据吗?但是如果其中一项更新失败,另一项更新将会成功并且数据现在在逻辑上不正确怎么办? firebase如何处理这两个查询,要么全部执行要么都不执行。

谢谢。 ps。我已经搜索了组收集查询,但没有找到如何使用它们以及它们如何工作的。还有其他解决方案吗?!

回答1

如果您有多个要更新的文档,其字段值必须保持同步,并且它们的更新必须完全同时完成,则应使用batch write or transaction。通过这些操作,批处理或事务中引用的所有文档将同时更新,如果任何更新失败,则会回滚整个批处理或事务。