Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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将元素添加到ArrayList_Java_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Java 无法使用Firebase将元素添加到ArrayList

Java 无法使用Firebase将元素添加到ArrayList,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我有一个孩子叫Firebase数据库上的数字 在我的代码中,我不明白在onDataChange方法中,listNumber.size是否返回4。但在listNumber.size的onDataChange值之外返回0 onDataChange是一个侦听器,不会立即调用,而是在Firebase返回数据后调用 因此,执行顺序如下所示: 向Firebase发出请求并添加侦听器。数据不存在。 请求后执行代码//结果=0 Firebase已返回数据,因此将调用您的侦听器//结果=4 onDataChang

我有一个孩子叫Firebase数据库上的数字

在我的代码中,我不明白在onDataChange方法中,listNumber.size是否返回4。但在listNumber.size的onDataChange值之外返回0


onDataChange是一个侦听器,不会立即调用,而是在Firebase返回数据后调用

因此,执行顺序如下所示:

向Firebase发出请求并添加侦听器。数据不存在。 请求后执行代码//结果=0 Firebase已返回数据,因此将调用您的侦听器//结果=4
onDataChange是一个侦听器,不会立即调用,而是在Firebase返回数据后调用

因此,执行顺序如下所示:

向Firebase发出请求并添加侦听器。数据不存在。 请求后执行代码//结果=0 Firebase已返回数据,因此将调用您的侦听器//结果=4
这是异步编程。 Firebase异步执行其方法,它不等待数据,因为从服务器获取数据可能需要很多时间。因此,在调用onDataChanged方法之外的变量时,它没有被赋值。 因此,它是空的

您可以将语句带到onDataChanged方法。您还可以使用setter和getter方法创建一个模型类。
通过在onDataChanged中调用模型类的setter来设置变量的值,并在onDataChanged之后调用getter方法以获取值。

这是异步编程。 Firebase异步执行其方法,它不等待数据,因为从服务器获取数据可能需要很多时间。因此,在调用onDataChanged方法之外的变量时,它没有被赋值。 因此,它是空的

您可以将语句带到onDataChanged方法。您还可以使用setter和getter方法创建一个模型类。
通过在onDataChanged中调用模型类的setter来设置变量的值,并在onDataChanged之后调用getter方法以获取值。

请不要将代码作为图像发布,而是将其作为格式化文本发布。基本上,如果将底线移到Firebase调用上方,则会得到相同的结果。最好学习和理解异步代码的工作原理。请不要将代码作为图像发布,而是作为格式化文本发布。基本上,如果将底线移到Firebase调用上方,您将得到相同的结果。学习和理解异步代码的最佳方式