首页 > 解决方案 > Firestore 默认用户数据初始化

问题描述

我正在创建一个游戏,我想为每个用户在 firestore 上存储已完成的游戏关卡。

现在我的问题是我将不得不初始化这些数据一次 - 我想为新用户添加一个文档和一个包含关卡 ID 映射的 pojo 和用于已完成/未完成的布尔值。

所以我需要执行某种逻辑,例如“如果具有此 ID 的文档不存在,则添加该文档并添加意味着用户尚未完成任何级别的默认数据”。有什么方法可以保证 Id 只需要执行一次这个逻辑吗?如果出现失败等情况,我想避免某种重复/重试,谢谢你的建议

标签: firebasegoogle-cloud-firestore

解决方案


这就是交易的用途(一定要阅读链接的文档)。在您的事务中,您可以读取该文档以了解它是否存在,如果不存在则写入该文档。

或者,您可以使用带有 merge 的 set()侥幸逃脱。如果文档不存在,合并集操作将创建文档,然后使用您指定的数据更新文档。


推荐阅读