【发布时间】:2017-03-01 09:30:24
【问题描述】:
我有一个大厅,我希望用户在其中保持同步。因此,当用户在应用程序运行时关闭互联网时,他应该被删除。我知道 Firebase 不支持服务器端编码,所以编码需要在客户端。 How to delete firebase data after "n" days 和 Delete firebase data older than 2 hours 的答案没有回答这个问题,因为他们希望用户在线并且他们有互联网连接。所以我的问题是是否可以在没有互联网的情况下删除用户?我想也许让用户每 5 秒更新一次值是一个想法,当更新没有完成时,该大厅中的其他用户会删除播放器。这种方式不好,因为每个玩家每 5 秒需要检索和上传大量数据。解决这个问题的最佳方法是什么?
编辑:简而言之,假设每个用户都有一张图片。用户连接时图像应为绿色,断开连接时图像应为灰色。
编辑2:仔细考虑之后,在客户端服务器上准确呈现连接的用户确实很困难。这就是为什么,如果没有人有不同的解决方案,我应该添加另一个可以执行服务器端代码的服务器。由于服务器数量众多,我想知道我应该使用哪个服务器。服务器应该运行一个简单的函数,它只检查用户是连接还是断开连接,并且可以与 Firebase 通信。如果我是正确的,它应该是这样的:
但服务器也需要直接与用户通信。我完全不知道从哪里开始。
【问题讨论】:
-
我知道这个选项。但是,如果用户没有互联网,他们应该如何将数据上传到服务器呢?我知道当用户重新启用互联网时该功能将执行,但这不是最好的方法。
-
这个函数在服务器上注册回调,所以当连接丢失时 - 它会被执行。但是由于 iOS 的限制,用户离开应用后连接会立即丢失
-
>当您建立 onDisconnect() 操作时,该操作将存在于 Firebase 实时数据库服务器上。服务器检查安全性以确保用户可以执行请求的写入事件,并在它无效时通知您的应用程序。然后服务器监视连接。如果在任何时候连接超时,或者被实时数据库客户端主动关闭,服务器会再次检查安全性(以确保操作仍然有效),然后调用事件。
-
"每个用户都有一个图像。当用户连接时图像应该是绿色的,断开连接时图像应该是灰色的" Firebase 文档中的 Presence 应用正是这样做的:firebase.google.com/docs/database/ios/…