Javascript Firebase-将查询保存到JS中的对象/映射/数组
我有一个firebase实时数据库。我想编写一个查询,并将数据保存到数组中,稍后再使用。我能设法做到吗?这段代码运行得很好,只需要保存它以备将来使用。对象/贴图会很好,但数组也可以。 我的半代码在这里:Javascript Firebase-将查询保存到JS中的对象/映射/数组,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我有一个firebase实时数据库。我想编写一个查询,并将数据保存到数组中,稍后再使用。我能设法做到吗?这段代码运行得很好,只需要保存它以备将来使用。对象/贴图会很好,但数组也可以。 我的半代码在这里: map = new Map(); var rootRef = firebase.database().ref("locations/map"); rootRef.once("value", function(snapshot) { snapshot.forEach(function(chil
map = new Map();
var rootRef = firebase.database().ref("locations/map");
rootRef.once("value", function(snapshot) {
snapshot.forEach(function(child) {
console.log(child.key+": "+child.val().value);
map.set(child.key, child.val().value);
});
});
console.log(map);
很好,但如果我试一下
console.log(map.get(0));
没有定义。有必要将其用于:
for (i = 0; i < someaarray.data.length; i++) {
if (someaarray.data[i].id == map.get(id))
{
someaarray.data[i].value = map.get(value);
}
}
for(i=0;i
您需要返回一个承诺,因为提取数据是无效的,因此请尝试以下操作:
function getData() {
return new Promise((resolve, reject) => {
let map = new Map();
var rootRef = firebase.database().ref("locations/map");
rootRef.on("value", function(snapshot) {
snapshot.forEach(function(child) {
console.log(child.key+": "+child.val().value);
map.set(child.key, child.val().value);
resolve(map);
});
});
});
}
getData().then((value) => {
console.log(value.get(0));
});
});
然后,当需要使用映射时,需要执行以下操作:
function getData() {
return new Promise((resolve, reject) => {
let map = new Map();
var rootRef = firebase.database().ref("locations/map");
rootRef.on("value", function(snapshot) {
snapshot.forEach(function(child) {
console.log(child.key+": "+child.val().value);
map.set(child.key, child.val().value);
resolve(map);
});
});
});
}
getData().then((value) => {
console.log(value.get(0));
});
});
查看此处了解更多信息:
谢谢!我尝试了您的代码,但“console.log(value.get(0));”未定义:(是否child.key
等于0?因为在get()