我正在使用Firebase开发一个新的Android应用程序(第一次使用Firebase)。我选择使用持久模式,因为它更适合我的应用程序。
我的问题是应用程序没有将数据同步到服务器,因此,其他设备,即使用于存储数据的设备是在线!!
代码很好(据我所知),如果我禁用持久性模式,一切正常,但我肯定没有设备上的缓存数据。
这也发生在不同的设备和模拟器中,奇怪的是有时设备会同步,然后无缘无故再次停止同步!
我感谢此处提出的任何建议。
代码:
My App class:
//....
Firebase.setAndroidContext(this);
Firebase.getDefaultConfig().setPersistenceEnabled(true);
Firebase.getDefaultConfig().setLogLevel(Logger.Level.DEBUG);
//...
在Message class中发送代码:
//....
Firebase senderRef = new Firebase(MyApp.FirebaseURL).child("Messages").child(sender_Id);
senderRef.keepSynced(true);
senderRef.push().setValue(this, null);
//....
接收代码:
//...
Firebase ref = new Firebase(MyApp.FirebaseURL).child("Messages").child(sender_Id);
Query query = ref.orderByKey();
query.limitToLast(MAX_CHAT_MESSAGES_TO_SHOW);
query.keepSynced(true);
query.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Log.d("Firebase", "Message Child Added");
Message message = dataSnapshot.getValue(Message.class);
mMessages.add(0, message);
mAdapter.notifyDataSetChanged();
}
//...
答案 0 :(得分:0)
我做过两种方式:
如果您希望 同步 firebase服务器
FirebaseDatabase.getInstance().goOnline();
如果您 要 同步 firebase服务器
FirebaseDatabase.getInstance().goOffline();
完整代码:
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
/**
* User anyone function from below as required,
* Read comment proper
*/
// If you want to sync with firebase server
FirebaseDatabase.getInstance().goOnline();
// If you do not want to sync with firebase server
FirebaseDatabase.getInstance().goOffline();
}
}
希望这会对你有所帮助。