我想知道将 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/