从Firebase检索用户数组

时间:2016-09-28 21:28:10

标签: angular firebase firebase-realtime-database

我有一个Firebase DB,其中包含我想从用户检索的数组数据。具体而言,addnote,信息Du the dishes。作为参考,我已经包含了我的数据库的图像。

我的数据库采用JSON格式。由于我在身边徘徊,我试图减少一些过剩:

{
  "items" : {
    "-KSm_hb4Rw4rudtjxq6x" : {
      "addnote" : "Red"
    },
    "-KSmc45MdhuXIkNkoiN-" : {
      "addnote" : "Red"
    },
    "-KSmc8ZsUDGb23MapKl9" : {
      "addnote" : "Red"
    }
  },
  "users" : {
    "PYuSE6zyAENdKREZGTHm5VH1DXn1" : {
      "addnote" : {
        "-KSnELpl7-dkmjlyGl2x" : "Du the dishes",
        "-KSnFBaM4VXOyFTjWtaE" : "Du the dishes",
        "-KSnFDlC9hND-M3C2pWE" : "Du the dishes"
      },
      "useremail" : "majohjn@asd.com",
      "username" : "asdasd"
    },
    "ag1ZF6Z4cEZ5AsvusiSD9Z1WyUn2" : {
      "useremail" : "bacon@bacon.com",
      "username" : "jaconb"
    }
  }
}

我想知道如何在我的构造函数上重新安排代码,以便它接收与其用户相关的addnote项。

constructor(af: AngularFire){
this.addsnotes = af.database.list('users/' + addnote);//should fetch my notes.
}  


addSubmit(){
    var self = this;
    var user = firebase.auth().currentUser;
    var getUserInfo = firebase.database().ref('users/' + user.uid); 
    if (user){getUserInfo.child('addnote').push("Du the dishes");}  
}

以下是我要打印出来的HTML:

<li *ngFor="let addsnote of addsnotes | async">{{ addnote }}</li>

编辑:修正了我的代码。将li更改为呼叫{{addnote}},以便现在呼叫有效。但是,我在我的数组上得到一个[object Object]。

export class ProfileComponent implements OnInit {
private username: string;
private addsnotes: FirebaseListObservable<any>;

constructor(af: AngularFire){
var user = firebase.auth().currentUser;
this.addsnotes = af.database.list('users/'+user.uid+'/addnote');
}  
ngOnInit(){
var self = this;
}

addSubmit(){
    var self = this;
    var user = firebase.auth().currentUser;
    var getUserInfo = firebase.database().ref('users/' + user.uid); 
    if (user){
        getUserInfo.child('addnote').push("Du the dishes");
        }   

}

}

1 个答案:

答案 0 :(得分:1)

我认为你正在寻找这个:

var user = firebase.auth().currentUser;
this.addsnotes = af.database.list('users/'+user.uid+'/addnote');