如何使用javascript获取firebase中的父引用?

如何使用javascript获取firebase中的父引用?,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我用javascript编写了这段代码,它对所有博客文章进行排序,按时间戳排序,并获取相应的信息。然而,我不知道如何获得父引用 因此,正如您所看到的,我试图获得的是与我通过以下代码接收的项目数据相关联的唯一键或父引用:- let endpoint = "/blog_group/blogs/"; firebase.database().ref(endpoint) .orderByChild('timestamp') .on('value', function(snapshot) { this.

我用javascript编写了这段代码,它对所有博客文章进行排序,按时间戳排序,并获取相应的信息。然而,我不知道如何获得父引用

因此,正如您所看到的,我试图获得的是与我通过以下代码接收的项目数据相关联的唯一键或父引用:-

let endpoint = "/blog_group/blogs/";
firebase.database().ref(endpoint)
.orderByChild('timestamp')
.on('value', function(snapshot) {
  this.data = [];
  snapshot.forEach(function(child) {
    this.data.push(child.val());
  }.bind(this));
  timestamp = data.map(function(val) { return new Date(val.timestamp).toString(); });
  title = data.map(function(val) { return val.title; });
  body = data.map(function(val) { return val.body; });
console.log(timestamp,title,body);
});
[2018年2月8日星期四15:57:12 GMT-0500 EST][为什么咖啡对你有好处?][这将是博客的主体…]


上面的代码生成了您在控制台中看到的突出显示的内容,因此我正在成功地检索数据,我只需要能够检索父引用L4rCHNlkxdX4s2WckAg。如果您知道如何将其合并到我的代码中,将不胜感激。

请尝试以下方法获取密钥:-

var ids = [];
let endpoint = "/blog_group/blogs/";
firebase.database().ref(endpoint).orderByChild('timestamp').on('value', function(snapshot) {
    this.data = [];
    snapshot.forEach(function(child) {
        ids.push(child.key); 
        this.data.push(child.val());
    }.bind(this));
    timestamp = data.map(function(val) {
        return new
        Date(val.timestamp).toString();
    });
    title = data.map(function(val) {
        return val.title;
    });
    body = data.map(function(val) {
        return val.body;
    });
    console.log(timestamp, title, body, ids);
});
var id=child.key
在forEach下面添加这一行,以便能够检索作为id的键。

是字符串L4r。。。你想要什么?如果是,您可以使用snapshot.key访问它。如果您确实需要父引用而不是键,那么snapshot.ref.parent将为您执行此操作。是的,我需要字符串L4r…,在哪里插入snapshot.key?这就是我所需要的吗?对你来说,这就是子快照的关键。所以你可以考虑把它作为一个字段添加到你正在使用的数据对象中。例如:this.data.push{id:child.key,…snap.val}在你的.forEach.So中,id会保留所有的键吗?@AnthonySette是的当我调用定义下面的id时,它会提醒每个键,但我不能调用你看到我控制台的id.logtimestamp;。上面写着“未定义”,下面有什么说法吗?全局工作!!真不敢相信我错过了,谢谢。不过,它只会提醒最后一个键,我是将它们推送到数组还是其他地方?我只是编辑了答案,使其成为一个包含所有键的数组。在我接受你的答案之前,等待同行评议!