2016-09-28 5 views
0

У меня есть Firebase DB с данными массива, которые я хотел бы получить от пользователя. В частности, addnote, с информацией Du the dishes. Для справки, я включил изображение моей базы данных.Извлечение массива пользователей из Firebase

Мой DB в 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" : "[email protected]", 
     "username" : "asdasd" 
    }, 
    "ag1ZF6Z4cEZ5AsvusiSD9Z1WyUn2" : { 
     "useremail" : "[email protected]", 
     "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> 

EDIT: Fixed мой код. Изменен li для вызова {{addnote}}, так что теперь вызов работает. Тем не менее, я получаю [объект 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"); 
     } 

} 

} 
+2

Вы включили изображение дерева JSON в вашем вопросе. Пожалуйста, замените это на фактический JSON как текст, который вы легко можете получить, нажав кнопку «Экспорт» в консоли базы данных Firebase. Наличие JSON в качестве текста делает его доступным для поиска, позволяет нам легко использовать его для тестирования с вашими фактическими данными и использовать его в нашем ответе, и в целом это просто хорошая вещь. –

ответ

1

Я думаю, что вы ищете это:

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

спасибо! только одна затяжная проблема (надеюсь). когда вызывается внутри конструктора, я получаю «uid» нулевой ошибки. Что я должен устанавливать 'uid'? В настоящее время я получаю кучу точек (указывая, что элемент li действительно присутствует). Тем не менее, я не получаю текст, и я получаю ошибку uid. – abrahamlinkedin

+0

Я добавил свой полный код ts к вопросу. HTML остается неизменным. – abrahamlinkedin

+0

Я изменил HTML из '{{addnote? Addnote}}' to '{{addnote}}', и теперь мой список показывает '[object Object]' – abrahamlinkedin

Смежные вопросы