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(); 
      } 
//... 
+0

我遇到与iOS相同的问题。你有没有解决这个问题? –

+2

还不幸,我现在禁用了离线模式,但是我仍处于开发模式。 – Tamer

我在这两个方面都做:

  1. 如果同步火力服务器

    FirebaseDatabase.getInstance().goOnline(); 
    
  2. 如果不想同步火力服务器

    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(); 
    } 
} 

希望这会帮助你。