Firebase持续模式永远不会同步到服务器(Android)
问题描述:
我正在使用Firebase开发新的Android应用(首次使用Firebase)。我选择使用持久模式,因为它更适合我的应用程序。
我的问题是,该应用程序不会同步数据到服务器,因此,其他设备,即使用于存储数据的设备在线!Firebase持续模式永远不会同步到服务器(Android)
代码是好的(据我所知),如果我禁用持久模式,一切工作正常,但肯定我没有设备上的缓存数据。
这种情况发生在不同的设备和仿真器上,奇怪的是有时设备会同步,然后再次停止同步,无缘无故!
我很欣赏这里的任何建议。
代码:
My App class:
//....
Firebase.setAndroidContext(this);
Firebase.getDefaultConfig().setPersistenceEnabled(true);
Firebase.getDefaultConfig().setLogLevel(Logger.Level.DEBUG);
//...
在发送消息类代码:
//....
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();
}
//...
答
我在这两个方面都做:
-
如果想到同步火力服务器
FirebaseDatabase.getInstance().goOnline();
-
如果不想到同步与火力服务器
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();
}
}
希望这会帮助你。
我遇到与iOS相同的问题。你有没有解决这个问题? –
还不幸,我现在禁用了离线模式,但是我仍处于开发模式。 – Tamer