因此,我有一个游戏,其中两个设备/用户已连接到Firestore游戏文档。在游戏结束时,我将游戏结果加载到两个用户,然后他们继续进行另一个游戏。我现在的问题是考虑删除完整游戏对象的最佳方法。游戏一旦完成,就不再需要放在火场中。我刚刚测试了将gameDocRef.delete()
放到两个用户的最后,但是偶尔一个玩家删除它的速度太快,而另一个则无法加载结果。
是否有更好/自动的方式来清理已完成的文档?也许Firebase功能还是什么?任何建议都是经过批准的:)
答案 0 :(得分:2)
您可以存储两个值;例如。 “一名选手已确认”和“两名选手已确认”,
为了确认,两个玩家何时都取得了比赛结果-
并仅删除它们都已确认的那些文件
(甚至可能使用Cloud Functions清理脚本,而不是客户端)。
a)在查看events时,更新触发器将显示为最合适的:
providers/cloud.firestore/eventTypes/document.update
不利的一面是它会经常触发,因为它是每个文档而不是每个字段。
b)或者,可以通过另一台主机上的cronjob通过HTTP触发批量删除。
here是一个示例,它使用App Engine Cron(作为GCE上的Linux crontab
的替代)。