firebase - Firebase 动态查询取决于数组中的数据
问题描述
这是我的动态数组
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 的名称
解决方案
尝试如下:
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});
})();
推荐阅读
- php - 通过 B1WS 与 SAP B1 的 PHP 集成
- neural-network - 从经过训练的卷积网络进行预测
- python - 子类层次结构中的链方法执行以获得层次结构中所有方法执行的联合
- svn - 在 Jenkins 管道脚本中签出子文件夹时缺少 SVN 外部
- arrays - 为什么某些元素类型似乎不存在 contains(_ element: Element)?
- angularjs - angularJS,ng 选项。将列表设为小写并在客户端使用
- python - TypeError: 'str' 对象不能用 driver.current_url() (Python 3.6)(Selenium) 调用
- php - Symfony 4:调用安装了 composer 的供应商(没有命名空间)
- apache-kafka - Clickhouse Kafka Engine:物化视图的好处
- performance - Redis 发布/订阅最佳实践