Firebase代码在其他一切之后运行

时间:2018-08-01 20:08:15

标签: android firebase listener onstart

我正在使用Firebase制作一个Android应用,并且在我的一项活动中,我需要从Firebase读取数据,然后再执行其他操作。为此,我使用的是ValueEventListener。问题是,Android先运行其余代码,然后在侦听器的onDataChange()方法中获取结果/运行代码。我之所以知道这一点,是因为我使用Logs进行了调试,实际上结果在其余代码运行几秒钟后到达。

我已经看到了一些人的示例,这些人在查询后在另一个方法中编写要运行的代码,然后在onDataChange()中调用该方法。我尝试这样做,还尝试将侦听器移至另一个类并调用该方法,甚至尝试使用变量控制代码流,但没有任何效果。关于我该怎么办的任何想法?

顺便说一句,我不知道这是否不会以任何方式影响,但是,我依赖Firebase结果的一段代码在onStart()方法内部,因此我想Android将始终运行{{1 }},然后从侦听器获取结果。

谢谢!

1 个答案:

答案 0 :(得分:2)

ValueEventListener是异步的,因此不会先运行。相反,请尝试从onDataChange()函数内部调用一个函数,该函数执行与侦听器所需的功能。