这是我的动态数组
let arr = [1,3];
我想根据数组的长度进行查询次数
Firebase.database().ref(`test/${arr[0]}`).once('value', (snapshot) => {
let arr = [];
snapshot.forEach(() => {
arr.push({
name: snapshot.val().name
});
});
this.setState({ data: arr });
}).catch((error) => console.error(error));
现在我通过硬编码数组索引来进行查询!有什么方法可以使查询动态
数据库结构
{
"test" : {
"1" : {
"name" : "One",
},
"2" : {
"name" : "Two",
},
"3": {
"name" : "Three",
}
}
}
期望的输出
仅限1和3的名称
答案 0 :(得分:0)
尝试如下:
let arr = [1, 3];
arr.forEach((item) => {
Firebase.database().ref(`test/${item}`).once('value', (snapshot) => {
let arr = [];
snapshot.forEach(() => {
arr.push({
name: snapshot.val().name
});
});
this.setState({ data: arr });
}).catch((error) => console.error(error));
});
或者,如果您想在一个数组中包含所有数据后加载调用setState
:
(async () => {
let items = [1, 3];
let arr = [];
for (let item of items) {
try {
const snapshot = await Firebase.database().ref(`test/${item}`).once('value');
snapshot.forEach(() => {
arr.push({
name: snapshot.val().name
});
});
} catch (error) {
console.error(error);
}
}
this.setState({data: arr});
})();