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