上下文:
Android游戏。(二(用户可以使用唯一的房间名称创建或加入房间。
目标:
- 如果用户1断开连接,而用户2在房间中。用户1仍然可以加入回到房间中
- 如果用户1和2断开连接,firebase应该从存储中删除房间名称
问题:
如何实现目标2?因为如果用户关闭了应用程序,那么应用程序就无法告诉firebase删除数据。
Firebase中没有任何内置功能可以自动做到这一点,而且只使用Android应用程序中的代码也不可能可靠地做到这一步。
最简单的方法是在云功能中,设置一个结构,在该结构中,您可以在单个父节点下同时连接房间:
room_presence: {
"room_1": {
"uid1": true,
"uid2": true
},
"room_2": {
"uid1": true,
"uid3": true
}
}
每当最后一个存在节点从文件室中删除时,该文件室本身也会自动删除(因为Firebase从不存储没有值的密钥(,因此您可以在删除该节点时触发云功能,并清理其中的存储。