Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 等待Firebase实时数据库查询的结果_Java_Android_Firebase Realtime Database - Fatal编程技术网

Java 等待Firebase实时数据库查询的结果

Java 等待Firebase实时数据库查询的结果,java,android,firebase-realtime-database,Java,Android,Firebase Realtime Database,我目前正在使用addListenerForSingleValueEvent方法从本地缓存中检索DataSnapshot,如下所述:。以前,我使用Room并执行callables来查询本地sqlite数据库,使用Executors.newSingleThreadExecutor().submit(callable).get(),允许我将结果存储在变量中并直接使用它。我似乎找不到一种使用Firebase的方法。有没有一种方法可以在其他语言中使用类似于await语法的功能来等待,直到我从本地缓存中获得

我目前正在使用
addListenerForSingleValueEvent
方法从本地缓存中检索
DataSnapshot
,如下所述:。以前,我使用Room并执行callables来查询本地sqlite数据库,使用
Executors.newSingleThreadExecutor().submit(callable).get()
,允许我将结果存储在变量中并直接使用它。我似乎找不到一种使用Firebase的方法。有没有一种方法可以在其他语言中使用类似于
await
语法的功能来等待,直到我从本地缓存中获得结果?

我认为您希望在收到快照后执行一些代码。但是在firebase中没有类似于
await
的东西,但您可以通过将代码放入
addOnCompleteListener
获取快照后要执行的操作。

数据是从Firebase(以及大多数现代云API)异步加载的。任何需要数据的代码都需要在
onDataChange
方法中,或者从那里调用。请参阅我链接的问题的答案,以获取一些示例。谢谢,我认为您使用回拨的答案是我能得到的最接近的答案。