如何使用snapshotChanges获取子项密钥()AngularFire

时间:2017-11-04 09:14:57

标签: firebase angularfire angularfire2

例如,我们有一个数据库结构,如:

消息数据下的

   authkey

       ----msgkey

           username:test
           message:test message
       ----msgkey2
           username:test
           message:test messagee

或者我们有没有authkey的db只有msgkey,如:

messagedata

   ---msgkey
       username:testuser
       message:test message

如何使用msgkey从数据库中获取消息?

文档代码中的

 afDb.object('items/1').snapshotChanges().map(action => {
    const $key = action.payload.key;
    const data = { $key, ...action.payload.val() };
    return data;
  }).subscribe(item => console.log(item.$key));
} 

但是在这个代码项中。$ key返回messagedata.i猜我需要再下两层1为authkey 1为msgkey或在第二个例子1层只是为了得到msgkey?

感谢

1 个答案:

答案 0 :(得分:0)

你似乎在上面的代码中犯了一个小错误。

您的代码应该是这样的:

afDb.object('items/1').snapshotChanges().map(action => {
const $key = action.key;
const data = { $key, $value: action.payload.val() };
return data;}).subscribe(item => {
console.log(item.$key);
console.log(item.value);});

此处所做的更改不是使用action.payload.key  ,action.key已被使用。

action.key持有该特定操作的关键并获取值,我们使用action.payload.val()