【发布时间】:2019-03-18 03:35:50
【问题描述】:
我目前正在使用 Android SDK 在 Firestore 数据库上做一个项目。我需要编写一个事务,其中我想在“destinations”集合中编辑一个“destination”文档,只有当另一个名为“batches”的集合没有任何将其字段名称“destionId”设置为编辑目标文档的文档时ID。我正在使用设置了 .limit(1) 的查询进行检查
现在,我想在事务中执行此操作,因为这个应用程序是实时的,并且会被很多人同时使用。如果我没有使用事务,那么可能是另一个人可能会在我的查询和目标文档的实际编辑之间添加一个带有此destinationId 的“批处理”文档。所以,我想在每次事务重试时运行查询并检查批次集合。
但我不确定如何在事务中以异步方式运行 Firestore 查询。我相信没有办法在 Android SDK 中发出阻塞查询请求。如有错误请指正。
有人可以帮助我了解如何解决此冲突吗?提前致谢。
【问题讨论】:
-
Doug 回答:您不能在事务中进行查询。这意味着您必须在事务之外进行查询,并在事务中加载相关文档。我不确定这是否可以在这里工作,因为我发现将文本解析为(伪)代码非常困难。您可能想用一些(伪)代码更新问题,以便我们更容易推理用例/问题。
标签: android google-cloud-firestore