0

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

我见过有人在另一个方法中编写要在查询之后运行的代码,然后在onDataChange(). 我尝试这样做,还尝试将侦听器移动到另一个类并调用该方法,甚至尝试使用变量控制代码流,但没有任何效果。关于我能做什么的任何想法?

顺便说一句,我不知道这是否会以任何方式影响,但是,我依赖于 Firebase 结果的代码在onStart()方法内部,所以我想 Android 总是onStart()首先运行,然后从侦听器获取结果。

谢谢!

4

1 回答 1

2

ValueEventListeners 是异步的,所以它们不会先运行。相反,请尝试从函数内部调用一个函数来执行您想要对侦听器执行的操作onDataChange()

于 2018-08-01T20:31:07.890 回答