我目前正在测试新的firebase,了解我们如何有效地脱机处理数据库。对于数据库联机脱机状态,我们有.info/connected
路径来检查数据库当前是否已连接。我可以使用以下代码更改状态:
mDbStatusRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
Boolean connected = snapshot.getValue(Boolean.class);
mDbStatus.setText(String.valueOf(connected).toUpperCase());
if (!connected)
mDbStatus.setTextColor(getResources().getColor(android.R.color.holo_red_light));
else
mDbStatus.setTextColor(getResources().getColor(android.R.color.holo_green_dark));
}
@Override
public void onCancelled(DatabaseError error) {
System.err.println("Listener was cancelled");
}
});
有什么方法可以确定本地客户端上的数据库(缓存是你所调用的)是否完全同步?就像远程缓存中是否有待处理的写入队列一样?
或者我可以确定所有内容都已同步的任何替代/黑客攻击,并且可以安全地关闭连接。每次应用程序启动时同步都会很有用,一旦所有内容同步,就会关闭连接。或者在需要实时同步时保持连接打开,并在用户完成后关闭它并且所有内容都与服务器同步。以及许多其他类似的用例。