[英]Flutter sign in with google lost authentication when the internet connection lost, how to re-auth it?
[英]How to signal to the database that I have lost the connection - Java
如果 player1 失去连接,我怎么能做到这一点,firebase 会收到信号,我只需要知道如何让 firebase 收到例如 player1 失去连接的通知
我用它来检查是否有连接,用它你可以做所有这些,但从这里我将无法将标志转移到 Firebase 我已经失去了连接,因为为了转移它你需要有一个连接:
DatabaseReference connectedRef = FirebaseDatabase.getInstance().getReference(".info/connected");
connectedRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
boolean connected = snapshot.getValue(Boolean.class);
if (connected) {
System.out.println("connected");
} else {
Toast.makeText(DuelGame.this, "У вас отсутствует подключение к интернету!", Toast.LENGTH_SHORT).show();
System.out.println("not connected");
}
}
@Override
public void onCancelled(DatabaseError error) {
System.err.println("Listener was cancelled");
}
});
我将再次简单地解释一下。 我需要 Firebase 来检查人们是否在线,如果没有,则启用某些操作。
您拥有的代码允许客户端检测它是否连接到 Firebase 实时数据库后端。 正如您所发现的,一旦客户端断开连接,此代码不允许您更新数据库 - 因为此时它无法再写入数据库。
为了检测此类断开连接事件,Firebase 具有onDisconnect
处理程序。 有了这个,你在连接时向服务器注册一个写操作,一旦它检测到客户端已经消失,服务器就会执行这个操作。
该文档甚至包含一个使用.info/connected
和onDisconnect
构建的完整存在系统的示例。 我建议也将其用作您自己的用例的基础,因为它可以处理一些您可能不会立即想到自己的边缘情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.