gpt4 book ai didi

android - 适用于 Android 的 Firebase 数据库 - 使用持久性在离线时写入事件

转载 作者:搜寻专家 更新时间:2023-11-01 09:32:24 24 4
gpt4 key购买 nike

如标题所述,我使用的是 Firebase 实时数据库,启用了持久性

如指南中所述,

By enabling persistence, any data that the Firebase Realtime Database client would sync while online persists to disk and is available offline, even when the user or operating system restarts the app. This means your app works as it would online by using the local data stored in the cache. Listener callbacks will continue to fire for local updates.

虽然这种情况发生在 ValueEventListeners 和每个读取监听器上,但我找不到一种方法让它也适用于写入操作。这是我的数据库助手类的一个 fragment :

    DatabaseReference userRef = root.child("users").child(user.getUid());
userRef.setValue(user).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void result) {
//handle success event
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
//handle failure event
}
});

即使启用了持久性,这也应该使数据库以“ react 方式”运行,这两个监听器不会触发,直到数据库再次联机并最终将更新推送到服务器。

这并不是我真正希望的,因为我希望一旦数据缓存到本地就会触发该事件。我知道我可以简单地忽略这些事件并假装它成功了,但我想知道,我是否遗漏了什么?有没有办法在缓存数据后立即触发事件?

最佳答案

写入操作的onSuccess 监听器在数据写入服务器上的数据库时被触发。

当数据写入本地队列时没有触发事件。

关于android - 适用于 Android 的 Firebase 数据库 - 使用持久性在离线时写入事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46014436/

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