firebase - Firestore 默认用户数据初始化
问题描述
我正在创建一个游戏,我想为每个用户在 firestore 上存储已完成的游戏关卡。
现在我的问题是我将不得不初始化这些数据一次 - 我想为新用户添加一个文档和一个包含关卡 ID 映射的 pojo 和用于已完成/未完成的布尔值。
所以我需要执行某种逻辑,例如“如果具有此 ID 的文档不存在,则添加该文档并添加意味着用户尚未完成任何级别的默认数据”。有什么方法可以保证 Id 只需要执行一次这个逻辑吗?如果出现失败等情况,我想避免某种重复/重试,谢谢你的建议
解决方案
这就是交易的用途(一定要阅读链接的文档)。在您的事务中,您可以读取该文档以了解它是否存在,如果不存在则写入该文档。
或者,您可以使用带有 merge 的 set()侥幸逃脱。如果文档不存在,合并集操作将创建文档,然后使用您指定的数据更新文档。
推荐阅读
- c# - C#:如何用当前用户目录的路径创建一个字符串?
- java - RegEx 用于查找引号之间的匹配项
- ios - 我想将占位符日期显示为当前日期
- php - How to write artisan command to search for specific routes name in Laravel
- java - 与两个 wifip2p 设备建立套接字连接
- c - i2c 传输,stm32f103 作为 Master,STOP 条件生成问题
- c# - 在 ASP.Net 中实现和生成多个动态 SiteMapNode
- json - 使用 `curl` 的 API 调用在 Swift 中不起作用
- jquery - 另一个表单的另一个 ajax 函数不起作用
- css - 如何显示行的交替红色和绿色?