Firebase会在应用启动时检索所有数据

时间:2016-07-18 11:20:49

标签: java android firebase firebase-realtime-database

我无法使用firebase文档查找任何信息,并且谷歌如何检索应用启动时的所有数据。

我们假设,我希望在没有任何事件的情况下获取应用程序启动时的所有以下数据。并存储在ArrayList中。假设ArrayList<Quote>并且quote有三个字段(int id,String text,String author)。

[{
    "id" : 1,
    "text": "There are 1,411 tigers left in India.",
    "author": "NULL"
}, {
    "id" : 2,
    "text": "The Greek for \"left-handed\" also means \"better\".",
    "author": "NULL"
}]

根据documentation,有一种名为 onDataChange()的方法,但app并未更改任何数据。如何获取所有数据并存储在ArrayList<Quote>中,我可以将其传递给自定义适配器。

2 个答案:

答案 0 :(得分:3)

  

保持数据新鲜

Firebase实时数据库同步并存储活动侦听器的本地数据副本。此外,您可以保持特定位置同步。

DatabaseReference scoresRef = FirebaseDatabase.getInstance().getReference("scores");
scoresRef.keepSynced(true);

即使引用没有活动侦听器,客户端也会自动下载这些位置的数据并保持同步。您可以使用以下代码行关闭同步。

请参阅此文档以获取更多信息; https://firebase.google.com/docs/database/android/offline-capabilities

答案 1 :(得分:2)

当附加了监听器(onDataChange()ValueEventListener)时,会直接调用ChildEventListener方法,因此您无需对数据进行任何更改即可触发该方法方法

来自文档Firebase - Retrieve Data on Android

  

此方法在连接侦听器时触发一次,并在每次包括子项在内的数据发生更改时再次触发。