android - 作为缓存的 Firebase 离线功能

标签 android firebase firebase-realtime-database

我想知道将 firebase 离线功能用作“免费”缓存是否是一个合理的策略。

假设我在 Activity A 中,我从 firebase 获取一些数据,然后我转到需要相同数据的 Activity B。如果应用程序配置了 setPersistenceEnabled(true) 并且在必要时还配置了 keepSynced(true),我是否可以只在 Activity B 中重新查询相同的数据,而不是传递它?

我知道这两种方法在从内存读取和从磁盘读取(firebase 离线缓存)方面存在差异。但是我真的可以通过离线使用 firebase 来摆脱所有的网络开销吗?

相关链接:
Firebase Offline Capabilities and addListenerForSingleValueEvent https://groups.google.com/forum/#!msg/firebase-talk/ptTtEyBDKls/XbNKD_K8CQAJ

最佳答案

是的,您可以在每个 Activity 中轻松地重新查询您的 Firebase 数据库,而不是四处传递数据。如果启用磁盘持久性,这将是本地读取操作。但由于您附加了一个监听器(或通过 keepSynced() 保持附加),它会导致网络流量。

但不要将 Firebase 用作仅供离线使用的数据库。它实际上被设计为一个在线数据库,可以在断开连接的短到中间时间内工作。离线时,它将保留写入操作队列。随着此队列的增长,本地操作和应用程序启动将变慢。没什么大不了的,但随着时间的推移,这些可能会加起来。

关于android - 作为缓存的 Firebase 离线功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38778680/

相关文章:

javascript - 从 Firebase Firestore 读取时无法写入值。说 "update is not a function"

android - 使用 Firebase : Get notification when new message received - Android 的聊天应用

javascript - 如何防止更改子节点字段后父节点触发云函数?

android - 使用套接字 fd 将实时视频从手机流式传输到手机

android - Fragment自动保存和恢复EditTexts的状态

android - APK 无效 Google Play 开发者控制台

android - 如何在 VM VirtualBox 上运行 Android-x86 4.2 iso?

ios - 检索子项的子值

ios - 从 Firebase 检索数据时获取错误的时间戳值? (IOS)

java - 使用嵌套值查询 firebase 数据库