
FirebaseAPI是
asynchronous,表示这些方法中的每个方法
onChildAdded(),
onChildChanged()等等,在调用后立即返回,并且它返回的Task的回调将在一段时间后调用。无法保证需要多长时间。因此,可能需要几百毫秒到几秒钟的时间才能获得该数据。因为该方法立即返回,所以
scores尚未从回调中填充该数组,这就是为什么为空的原因。
基本上,您尝试从异步的API同步使用值。那不是一个好主意。您应该按预期异步处理API。
快速解决此问题的方法是移动以下代码行:
for (int i = 0; i < 10; ++i) { scores[i] = i;}int i = scores[3];在
onChildAdded()方法内部,数据可用的位置。
如果您需要循环的
score数组回调外,我建议你看我anwser从这个最后的部分
后 ,其中我已经解释了如何可以使用自定义的回调来完成。您也可以观看此
视频 ,以更好地理解。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)