【发布时间】:2016-12-08 06:25:35
【问题描述】:
我将此代码用于离线并使用 firebase 同步 android 应用程序中的数据。 当我重新启动移动设备或此 android/firebase 应用程序时,Firebase 离线数据库数据被清除?
DatabaseReference scoresRef = FirebaseDatabase.getInstance().getReference("scores");
scoresRef.keepSynced(true);
final FirebaseDatabase database = FirebaseDatabase.getInstance();
final DatabaseReference myConnectionsRef = database.getReference("users/joe/connections");
// 存储我上次断开连接的时间戳(上次我在网上看到的时间) final DatabaseReference lastOnlineRef = database.getReference("/users/joe/lastOnline");
final DatabaseReference connectedRef = database.getReference(".info/connected");
connectedRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
boolean connected = snapshot.getValue(Boolean.class);
if (connected) {
// add this device to my connections list
// this value could contain info about the device or a timestamp too
DatabaseReference con = myConnectionsRef.push();
con.setValue(Boolean.TRUE);
// when this device disconnects, remove it
con.onDisconnect().removeValue();
// when I disconnect, update the last time I was seen online
lastOnlineRef.onDisconnect().setValue(ServerValue.TIMESTAMP);
}
}
@Override
public void onCancelled(DatabaseError error) {
System.err.println("Listener was cancelled at .info/connected");
}
});
【问题讨论】:
-
您可能想了解 Firebase 的磁盘持久性,它(在本机移动设备上)将同步的数据持久保存到磁盘,以便在应用程序重新启动后仍然存在:firebase.google.com/docs/database/android/…
标签: synchronization firebase-realtime-database