在另一个参考中获取基于ID的Firebase对象数据

时间:2017-04-28 19:27:33

标签: javascript firebase firebase-realtime-database vue.js vuefire

我有这个损坏CodePen,我试图根据对象.key或ID ...

获取另一个Firebase参考中的对象的信息

我必须使用Firebase参考:内容

[
  {
    "name": "objecta",
    ".key": "objecta"
  },
  {
    "name": "objectb",
    ".key": "objectb"
  },
  {
    "name": "objectc",
    ".key": "objectc"
  }
]

和Related按键列出对象,然后列出与该项目相关的键。

[
  {
    "objectc": true,
    ".key": "objectb"
  }
]

我正在尝试使用以下代码通过密钥来检查relatedRef:

var theKey = "objectb"

function getDiscoverBarContent(key, cb) {
    relatedRef.child(key).on("child_added", snap => {
        let relateRef = relatedRef.child(snap.key);
        relateRef.once("value", cb);
        console.log('relate:' + relateRef)
    });
}

然后获取与其相关的对象的数据并将其记录到控制台:

getDiscoverBarContent(theKey, snap => {
    var snapVal = snap.val();
    console.log(snapVal)
}); 

当我需要它返回relatedRef中引用的contentRef中的对象信息时,它返回null ...任何想法?

1 个答案:

答案 0 :(得分:1)

我在JS函数中引用了错误的引用。除此之外,一切都是正确的:

var theKey = "objectb"

function getDiscoverBarContent(key, cb) {
    relatedRef.child(key).on("child_added", snap => {
        //This should have referenced the contentRef:
        let relateRef = relatedRef.child(snap.key); 
        //like so
        let relateRef = contentRef.child(snap.key);
        relateRef.once("value", cb);
        console.log('relate:' + relateRef)
    });
}