所以这就是我正在做的:
我有一个名为
accountA
的文档。它有一个 balance
字段。现在 accountA
有一个名为 transactions
的子集合。 transactions
中的每个文档都有 amount
字段。我已经使用 Firestore SDK 编写了一个事务来添加/删除 transaction
文档,然后更新其相应的帐户。
我是否可以编写一条规则,以便仅当同一交易中相应帐户的
transaction
存在匹配更新时才能编写 balance
文档?或者我最好编写一个云函数吗?
是的,您当然可以编写一条规则来检查多个文档是否同时更新,以保持一致性。来自文档:
对于写入,您可以使用 getAfter() 函数在事务或批量写入完成之后但在事务或批量提交之前访问文档的状态。与 get() 一样,getAfter() 函数采用完全指定的文档路径。您可以使用 getAfter() 定义必须作为事务或批处理一起发生的写入集。