android - 根据 Firestore 事务中的查询结果编辑文档

标签 android google-cloud-firestore

我目前正在使用 Android SDK 在 Firestore 数据库上做一个项目。我需要编写一个事务,我想在其中编辑“目的地”集合中的“目的地”文档,只有当另一个名为“批处理”的集合没有任何其字段名称“destionId”设置为编辑目标文档的文档时ID。我正在通过设置了 .limit(1) 的查询进行检查

现在,我想在交易中执行此操作,因为此应用程序是实时的,并且会被很多人同时使用。如果我没有使用事务,那么另一个人可能会在我的检查查询和目标文档的实际编辑之间添加一个带有此 destinationId 的“批处理”文档。因此,我想在每次事务重试时运行查询并检查批处理集合。

但我不确定如何在事务中运行异步的 Firestore 查询。我相信没有办法在 Android SDK 中进行阻塞查询请求。不对请指正。

有人可以帮我解决这个冲突吗?提前致谢。

最佳答案

您不能在事务内执行查询,也不能使事务取决于一组不变的查询结果。您只能通过 ID 获取单个文档,以便稍后在该事务中更改它们。

关于android - 根据 Firestore 事务中的查询结果编辑文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55214431/

相关文章:

android - 如何在每个特定时间在android上启动B类?

firebase - Firestore 多对多关系

flutter - 我想在我的水平 ListView 之后添加一个新元素我该如何添加它

ios - Swift - Firebase - 订单集合

java - Android:添加可绘制选项卡选择器时,我收到了不需要的 apx。我的选项卡上的 5px 内边距

android - 从 'byte*' 到 'byte' 的无效转换

java - 显示 AVD 的日志

json - 使用云函数时,来自 firestore 的时间戳被转换为 Map

flutter - _InternalLinkedHashMap Dart中的<dynamic,dynamic> firestore错误

更新后 android.support 库不兼容