gpt4 book ai didi

javascript - 如何使用 Firebase 和 JavaScript 将快照保存在数组中?

转载 作者:行者123 更新时间:2023-11-28 18:11:03 26 4
gpt4 key购买 nike

我尝试将快照属性保存在数组中,但由于某种原因,当我将数据存储在查询中时,例如使用 onchild_added 并运行数据与foreach,数据显示在循环和查询内,但其中它的值是未定义的,我尝试使用对象但只保存了最后一个值,这个问题如何解决?

这是一个代码片段:

var array=[];
var ref= firebase.database().ref().child('messages');
ref.orderByChild("fecha").on('value',function(snapshot){
snapshot.forEach(function(snap){
//test array
array[0] = snap.val().text;
console.log(array[0]);//show the data
});
});

//but out of the loop
console.log(array[0]);//Return undefined

最佳答案

底部的 console.log 在循环中的之前运行。这称为异步代码。

在从 API 返回值之前,您无法访问这些值。 .on 函数等待数据准备好然后运行,这就是数据可用的原因。

没有办法在回调之外“保存”数据——你知道数据是什么的唯一地方就是回调内部。您当然可以将其从回调内部传递给另一个函数,但无法将其提取到第二个 console.log 的位置。

关于javascript - 如何使用 Firebase 和 JavaScript 将快照保存在数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41549120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com