首页 > 解决方案 > 如何在没有父节点的值/名称的情况下检索节点的数据?

问题描述

我想检索位于其他一些节点(在 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" : "______"
      }
    }
}
}

标签: javascriptfirebasefirebase-realtime-database

解决方案


您应该能够使用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);
  })
});

推荐阅读