是否有一种策略可以在当前的Firebase产品中运行,以检测服务器连接是否丢失和/或重新获得?
我正在考虑移动设备的一些离线意外事件,我想要一种可靠的方法来确定Firebase数据层何时可用.
Mic*_*uer 82
这是一个常见的功能,我们刚刚发布了API更新,让您这样做!
var firebaseRef = new Firebase('http://INSTANCE.firebaseio.com');
firebaseRef.child('.info/connected').on('value', function(connectedSnap) {
if (connectedSnap.val() === true) {
/* we're connected! */
} else {
/* we're disconnected! */
}
});
Run Code Online (Sandbox Code Playgroud)
完整文档位于https://firebase.google.com/docs/database/web/offline-capabilities.
Bar*_*ris 14
更新: 对于许多与状态相关的功能,客户端可以知道它何时在线或离线.Firebase实时数据库客户端在/.info/connected上提供了一个特殊位置,每当客户端的连接状态发生更改时,该位置都会更新.这是一个例子:
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 {
System.out.println("not connected");
}
}
@Override
public void onCancelled(DatabaseError error) {
System.err.println("Listener was cancelled");
}
});
Run Code Online (Sandbox Code Playgroud)
我想这在过去几个月里发生了变化.目前的说明如下:https: //firebase.google.com/docs/database/web/offline-capabilities
总结:
var presenceRef = firebase.database().ref("disconnectmessage");
// Write a string when this client loses connection
presenceRef.onDisconnect().set("I disconnected!");
Run Code Online (Sandbox Code Playgroud)
和:
var connectedRef = firebase.database().ref(".info/connected");
connectedRef.on("value", function(snap) {
if (snap.val() === true) {
alert("connected");
} else {
alert("not connected");
}
});
Run Code Online (Sandbox Code Playgroud)
我承认我不太了解如何设置引用,或者这意味着什么(你是在凭空捏造它们还是你必须事先已经创建它们?)或哪一个会触发某些东西在服务器上,而不是在前端的东西,但如果你读到这个链接仍然是当前的,更多一点阅读可能会有所帮助.
| 归档时间: |
|
| 查看次数: |
42381 次 |
| 最近记录: |