
我以为我使用以下所有聊天对话数据的时间都可以随时离线使用.以某种方式不是,所有节点都从服务器加载.
FirebaseDatabase.getInstance().setPersistenceEnabled(true);然后,根据DOCS:
Persistence Behavior : By enabling persistence, any data that we sync while online will be persisted to disk and available offline, even when we restart the app. This means our app will work as it would online using the local data stored in the cache.
如果setPersistenceEnabled(true)时数据已经脱机可用; ,为什么我需要keepSynced(true)?
DatabaseReference r = FirebaseDatabase.getInstance().getReference("chat/roomID");r.keepSynced(true);@R_502_6120@:
应用中的Firebase数据库客户端可以将数据从数据库保存在两个位置:内存和/或磁盘上.
>附加侦听器时,它会将数据库中的数据同步到应用程序中的内存表示形式.
>如果启用了持久性,则数据也会自动保留在磁盘上.
>从位置分离最后一个侦听器时,将从内存中刷新该位置的数据.但它不会从磁盘中删除.
当您保持位置同步时,客户端实际上会将空侦听器附加到该位置.因此,应用程序中的数据将始终与服务器上的数据库中的数据保持同步(只要存在网络连接).如果您尚未启用持久性,则数据将在内存中保持最新.如果您启用了持久性,它也将在磁盘上保持最新.
尽管将keepSynced与持久性一起使用是最常见的,但也存在没有持久性的用例.
例如,如果您有一个主 – 详细信息应用程序,您经常从项目名称列表中跳出到每个项目的详细信息.在这种情况下,保持项目名称列表同步将使您不必在用户从详细信息屏幕返回时重新加载该数据.
你当然也可以简单地在数据上保留一个监听器,这实际上就是keepSynced在幕后所做的事情.
总结以上是内存溢出为你收集整理的android – Firebase:setPersistenceEnabled和keepSynced有什么区别?全部内容,希望文章能够帮你解决android – Firebase:setPersistenceEnabled和keepSynced有什么区别?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)