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

2023-12-14

如标题所述,我正在使用 Firebase 实时数据库,启用持久性.

正如指南中所述,

通过启用持久性,Firebase 实时数据库客户端在联机时同步的任何数据都会持久保存到磁盘,并且即使在用户或操作系统重新启动应用程序时也可以脱机使用。这意味着您的应用程序可以像在线一样使用存储在缓存中的本地数据。侦听器回调将继续触发本地更新.

虽然这种情况发生在值事件监听器对于每个读取侦听器,我都找不到一种方法使其也可以与写入操作一起使用。 这是我的数据库助手类的片段:

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

即使启用了持久性,这也应该使数据库以“反应式方式”运行,这两个听众不会开火直到数据库再次上线,最后将更新推送到服务器。

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


The onSuccess当数据写入服务器上的数据库时,会触发写操作的监听器。

当数据写入本地队列时,不会触发任何事件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐