Firebase持久化模式从不同步到服务器(Android)
我正在使用Firebase开发一个新的Android应用程序(第一次使用Firebase)。我选择使用持久化模式,因为它更适合我的应用程序Firebase持久化模式从不同步到服务器(Android),android,firebase,Android,Firebase,我正在使用Firebase开发一个新的Android应用程序(第一次使用Firebase)。我选择使用持久化模式,因为它更适合我的应用程序 我的问题是,应用程序不同步数据到服务器,因此,其他设备,即使用于存储数据的设备是在线的 代码很好(据我所知),如果禁用持久化模式,一切正常,但可以肯定的是,设备上没有缓存数据 这在不同的设备和模拟器中也会发生,奇怪的是,有时候设备会同步,然后又会无缘无故地停止同步 我很欣赏这里的任何建议 代码: 正在消息类中发送代码: //.... Firebase
我的问题是,应用程序不同步数据到服务器,因此,其他设备,即使用于存储数据的设备是在线的 代码很好(据我所知),如果禁用持久化模式,一切正常,但可以肯定的是,设备上没有缓存数据 这在不同的设备和模拟器中也会发生,奇怪的是,有时候设备会同步,然后又会无缘无故地停止同步 我很欣赏这里的任何建议 代码: 正在消息类中发送代码:
//....
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();
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也有同样的问题。你曾经解决过这个问题吗?还不是很不幸,我现在禁用了离线模式,但是我仍然处于开发模式。