javascript - 如何在没有父节点的值/名称的情况下检索节点的数据?
问题描述
我想检索位于其他一些节点(在 firebase 数据库中)内的节点的数据,而没有这些父节点的名称。我该怎么做?谢谢你。
这是我尝试过的。(数据库中的“this”在其他一些节点内)。
var this = this.id;
var thisDbData = firebase.database().ref(this);
thisDbData.on('value', function(snapshot){
var name = snapshot.child('name').val();
console.log(name);
});
“名称”变量返回空值。这是数据库结构:
{
"products" : { //I have access to this name
"W9bgPeMeYieEvP2FGb9ZOvvhx0T2" : { //I don't have access to this name
"-Lh0CbgAW8R2-vjMELqr" : { //I have access to this name
"description" : "________", //What I wanna get
"name" : "_______" //What I wanna get
},
"-Lh0IqYJeS91dM6Qurye" : {
"description" : "______",
"name" : "______"
}
}
}
}
解决方案
您应该能够使用orderByKey()
它的键来获取节点:
var root = firebase.database().ref('products');
var query = root.orderByKey().equalTo('-Lh0CbgAW8R2-vjMELqr');
query.once('value', function(snapshot){
snapshot.forEach(function(child) {
var name = child.child('name').val();
console.log(name);
})
});
推荐阅读
- python - python类方法打印变量的地址而不是其值
- c# - 在 MemberExpression 中处理“转换为对象”
- javascript - 使用 javascript 添加内联 css 样式,高度从容器宽度动态计算
- angular-reactive-forms - 如何正确使用带有角度反应形式的嵌套数据的 formGroup
- javascript - 赛普拉斯:页面未在点击操作的第二个“it”块内加载
- java - 为什么我的构建失败并出现“进程'Gradle Test Executor 1'以非零退出值100完成”
- html - 从 api 数据创建 FormArray
- javascript - 根据每个级别的键搜索整个 JSON 树
- reactjs - ReactJS Material UI如何防止Autocomplete改变值
- flutter - Flutter 通过索引获取 json 数据