【发布时间】:2018-11-28 17:17:13
【问题描述】:
在docs 中指出,交易失败,当:
事务读取了在事务之外修改的文档。
我想知道这是否也适用于读取查询,它可能返回多个文档(通过.where('x', '==', 'y'))。如果在事务期间再次执行 Read 查询会返回更多结果,事务是否仍然失败?
为了说明我的问题,假设我有一组具有以下架构的汽车:
{
ownerId: string,
make: string,
horsepower: int
...
}
现在我在transaction.get() 电话中查询某个车主的汽车:
transaction.get(firestore.collection('cars').where('ownerId', '==', '123'))...
假设我收到带有 2 辆汽车的 Snapshot,基于这些汽车,我想在交易中做一些魔术。在交易期间,为该车主添加另一辆车(因此它不是初始快照的一部分)。这种情况下交易会失败吗?
PS:我不是在寻找不同的解决方案,上面的例子是虚构的,我只是想了解事务在这种情况下是如何表现的。
【问题讨论】:
标签: firebase transactions google-cloud-firestore