Ver*_*gon 9 firebase google-cloud-firestore
查看https://firebase.google.com/docs/reference/js/firebase.firestore.Transaction,我看到了四种方法:删除,设置,获取,更新。
我打算构造一个可爱的小集合查询并将其传递给.get,但是我看到文档说.get“读取提供的DocumentReference引用的文档”。
看来这意味着我们无法使用Transaction对象获取集合或查询集合。
我可以使用查询的.get()方法而不是事务的.get()方法查询那些对象,但是如果集合从我下面改变了,事务将以不一致的状态结束,而无需重试。
看来我在这里撞墙。我的理解正确吗?我们不能以一致的方式访问事务内部的集合吗?
您的理解是正确的。您必须确定要确保在交易完成前不会更改的单个文档。如果这些文档提前来自集合查询,则可以。但是想一想,如果您必须跟踪(非常大)集合中的每个文档才能完成交易,那将是多么不可扩展。
您可以在事务的get()方法中运行查询(不仅仅是获取单个文档),但这仅适用于服务器执行。因此,如果您真的需要这样做(例如为了维护非规范化数据的一致性),您可以将该代码放在云函数中并利用服务器端事务
| 归档时间: |
|
| 查看次数: |
1595 次 |
| 最近记录: |