android - Firebase Firestore Android 删除多人游戏文档
问题描述
所以我有一个游戏,其中两个设备/用户连接到一个 Firestore 游戏文档。在游戏结束时,我将游戏结果加载给两个用户,然后他们继续进行另一个游戏。我现在的问题是考虑删除已完成游戏对象的最佳方法。一旦游戏完成,它就不再需要在 Firestore 中了。我只是在最后测试了两个用户的推杆gameDocRef.delete()
,但偶尔一个玩家删除它太快而另一个无法加载结果。
是否有更好/自动化的方式来清理已完成的文档?也许是 Firebase 函数之类的?任何建议都值得赞赏:)
解决方案
你可以存储两个值;例如。“玩家一承认”和“玩家二承认”,
为了确认,当双方玩家都拿到了比赛结果时——
并且只删除他们都承认的那些文件
(甚至可能使用 Cloud Functions 清理脚本,而不是客户端)。
a) 在查看可用事件时,更新触发器将出现最合适的情况:
providers/cloud.firestore/eventTypes/document.update
不利的一面是,它会经常被触发,因为它是每个文档而不是每个字段。
b) 或者,可以批量删除,通过 HTTP 触发,在另一台主机上使用 cronjob。
这是一个示例,使用 App Engine Cron(作为crontab
GCE 上的 Linux 的替代品)。
推荐阅读
- c# - 如何使用 DataAnnotation 进行自定义验证并从配置 appsettings.json 中获取值?
- java - 杰克逊特定的字段名称
- intellij-idea - 如何设置 InteliJ 代码样式定义,以区分常规调用和构建器
- mongodb - mongo db中没有索引错误的NamespaceDetails
- angular - Angular6 rxjs 取消订阅定时器订阅 OnDestroy 不起作用?
- php - Google Drive API 文件夹通过 Google Drive 中的服务帐户创建和上传文件失败并在 1 天后生成 404 错误
- php - 使用命令运行计划 Laravel
- angular - 为导航链接添加活动类
- arrays - FutureWarning:使用非元组序列进行多维索引
- qlikview - 在图例级别显示值 Histogram Qlikview