为什么我需要调用Firebase的OnDataChange方法来获取数据快照?

时间:2017-03-08 02:13:52

标签: firebase firebase-realtime-database

似乎限制我只能从数据库中获取快照以从数据更改中读取数据。关于OnDataChange,我有什么遗漏的东西吗?

如果我想要从数据库中动态读取数据来填充页面,但数据库中没有数据发生变化,该怎么办?我还需要调用OnDataChange吗?

2 个答案:

答案 0 :(得分:2)

Firebase的onDataChange会立即触发数据库中当前值的快照,随后会在数据发生变化时触发。

事实上,Firebase documentation说明了这一点:

  

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

答案 1 :(得分:0)

简单的答案是,您无法通过长时间运行的任务(例如数据库查询或网络请求)来阻止用户界面。在最糟糕的情况下,用户最多会有一个没有响应的应用程序#34;应用程序没有响应异常" (ANR)崩溃将会发生。这就是为什么它采用侦听器模式设计的原因。我认为这是我们正在谈论的android,但答案对其他平台有效。如果你在背景线程上这样做,你可以理所当然地做你所说的。我不认为firebase是这样设计的。