如何确定具有特定令牌的设备是否与firebase android在线?

时间:2016-06-07 11:40:41

标签: android push-notification firebase firebase-cloud-messaging

我想知道如何确定带有令牌A' A'是否使用firebase框架与另一个Android设备联机?

1 个答案:

答案 0 :(得分:1)

当应用启动时,您可以使用https://www.firebase.com/docs/web/api/ondisconnect/remove.html确保在客户端脱机时删除特定数据。然后,您可以在其他地方查看该数据是否存在(仍然在线)或不存在(现在离线)。

此页面https://www.firebase.com/docs/web/api/ondisconnect/说明以下内容

  

onDisconnect类允许您在编写或清除数据时使用   客户端与Firebase服务器断开连接。发生这些更新   您的客户是否干净地断开连接,以便您可以信赖   即使连接断开或客户端,它们也会清理数据   崩溃。

     

onDisconnect类最常用于管理状态   检测有多少客户端有用的应用程序   连接和其他客户端断开连接。请参阅脱机功能   了解更多信息。

假设您的数据库中有在线用户列表。像这样:

onlineUsers: {
  user1: true,
  user23: true,
  user100: true
}

该示例说明用户user1,user23和user100在线。假设user23联机,您希望firebase数据库反映该用户是否在线,请执行以下操作:

var disconnectRef = new Firebase('https://<YOUR-FIREBASE-APP>.firebaseio-demo.com/onlineUsers/user23');
disconnectRef.onDisconnect().remove();

上述代码在执行时不会删除任何内容。它只是告诉Firebase服务器在客户端脱机时删除onlineUsers / user23。

只要该客户端(例如Android应用/设备)离线,Firebase服务器就会确保新状态如下:

onlineUsers: {
  user1: true,
  user100: true
}

如您所见,user23不再出现在列表中。