只有当两个客户端都断开连接时,才从firebase实时数据库中删除数据



上下文:

Android游戏。(二(用户可以使用唯一的房间名称创建或加入房间。

目标:

  1. 如果用户1断开连接,而用户2在房间中。用户1仍然可以加入回到房间中
  2. 如果用户1和2断开连接,firebase应该从存储中删除房间名称

问题:

如何实现目标2?因为如果用户关闭了应用程序,那么应用程序就无法告诉firebase删除数据。

Firebase中没有任何内置功能可以自动做到这一点,而且只使用Android应用程序中的代码也不可能可靠地做到这一步。

最简单的方法是在云功能中,设置一个结构,在该结构中,您可以在单个父节点下同时连接房间:

room_presence: {
"room_1": {
"uid1": true,
"uid2": true
},
"room_2": {
"uid1": true,
"uid3": true
}
}

每当最后一个存在节点从文件室中删除时,该文件室本身也会自动删除(因为Firebase从不存储没有值的密钥(,因此您可以在删除该节点时触发云功能,并清理其中的存储。

最新更新