gpt4 book ai didi

android - Firebase 持久性模式从不同步到服务器 (Android)

转载 作者:太空狗 更新时间:2023-10-29 14:50:42 24 4
gpt4 key购买 nike

我正在使用 Firebase 开发一个新的 Android 应用程序(第一次使用 Firebase)。我选择使用 Persistence 模式,因为它更适合我的应用程序。
我的问题是该应用程序不会将数据同步到服务器,因此,其他设备,即使用于存储数据的设备在线!

代码没问题(据我所知),如果我禁用 Persistence 模式,一切正常,但可以肯定的是我的设备上没有缓存数据。

这种情况也发生在不同的设备和模拟器中,奇怪的是有时设备会同步,然后又无缘无故地停止同步!

我很感激这里的任何建议。

代码:

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

最佳答案

两种方式我都做过:

  1. 如果您想要firebase 服务器同步

    FirebaseDatabase.getInstance().goOnline();
  2. 如果您不想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();
}
}

希望对您有所帮助。

关于android - Firebase 持久性模式从不同步到服务器 (Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35641485/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com