我在Firebase数据库中有一个名为Numbers的孩子。
在我的代码中,我不明白是否在onDataChange()方法中,listNumber.size()返回4.但是在listNumber.size()的onDataChange()值之外返回0.
答案 0 :(得分:3)
onDataChange是一个侦听器,它不会立即调用,在Firebase返回数据后调用它。
所以执行顺序如下:
//result = 0
)//result = 4
)答案 1 :(得分:1)
这是异步编程。 Firebase异步执行其方法,它不会等待数据,因为从服务器获取数据可能需要很长时间。因此,当您在onDataChanged方法之外调用变量时,不会为其分配任何值。 因此,它保持为空。
您可以将语句带到onDataChanged方法。您还可以使用setter和getter方法创建模型类。 通过调用onDataChanged中的模型类的setter来设置变量的值,并在onDataChanged之后调用getter方法来获取值。