Firebase Firestore Android删除多人游戏文件

时间:2018-09-19 23:01:42

标签: android firebase google-cloud-firestore

因此,我有一个游戏,其中两个设备/用户已连接到Firestore游戏文档。在游戏结束时,我将游戏结果加载到两个用户,然后他们继续进行另一个游戏。我现在的问题是考虑删除完整游戏对象的最佳方法。游戏一旦完成,就不再需要放在火场中。我刚刚测试了将gameDocRef.delete()放到两个用户的最后,但是偶尔一个玩家删除它的速度太快,而另一个则无法加载结果。

是否有更好/自动的方式来清理已完成的文档?也许Firebase功能还是什么?任何建议都是经过批准的:)

1 个答案:

答案 0 :(得分:2)

您可以存储两个值;例如。 “一名选手已确认”和“两名选手已确认”,

为了确认,两个玩家何时都取得了比赛结果-

并仅删除它们都已确认的那些文件

(甚至可能使用Cloud Functions清理脚本,而不是客户端)。

a)在查看events时,更新触发器将显示为最合适的:

providers/cloud.firestore/eventTypes/document.update

不利的一面是它会经常触发,因为它是每个文档而不是每个字段。

b)或者,可以通过另一台主机上的cronjob通过HTTP触发批量删除。

here是一个示例,它使用App Engine Cron(作为GCE上的Linux crontab的替代)。