我制作了一个应用程序,用户首次登录时可以在该应用程序上登录并登录,他/她的信息存储在firebase上。我的问题是,当我尝试调用未获取的数据时,控制台日志中显示的内容是:-
FirebaseListObservable {_isScalar: false, $ref: Reference, source: FirebaseListObservable, operator: ObserveOnOperator}
$ref: Reference {repo: Repo, path: Path, queryParams_: QueryParams, orderByCalled_: false}
operator: ObserveOnOperator {scheduler: ZoneScheduler, delay: 0}
source: FirebaseListObservable {_isScalar: false, _subscribe: ƒ, $ref: Reference}
_isScalar: false
__proto__: Observable
我尝试更改要呼叫的孩子,但得到的结果相同。
这是我的代码的一部分:-
constructor(public afdb: AngularFireDatabase, public afAuth: AngularFireAuth, public alrtCtrl:AlertController) {
console.log('Hello FirebaseProvider Provider');
afAuth.authState.subscribe(user => {
if (user) {this.id = user.uid}
});
}
addUser(user){
firebase.database().ref('Users').child(user.UID).child('User Details').set(user);
let alert = this.alrtCtrl.create({
title:'Sign Up',
subTitle:'You have signed up successfully',
buttons:['OK']
})
alert.present();
}
getUser() {
return this.afdb.list('/Users/'+this.id+'/User Details/');
}
我希望数据将返回并存储在另一个ts文件中的变量中:-
constructor(public firebase: FirebaseProvider,public afAuth: AngularFireAuth,public navCtrl: NavController, public auth: AuthProvider) {
this.user = this.firebase.getUser();
console.log(this.user);
}
但是相反,我一直得到控制台日志中显示的结果,而不是实际数据。
答案 0 :(得分:0)
如果没有任何效果,您可以尝试以下代码吗?
this.itemsRef = db.list('messages');
// Use snapshotChanges().map() to store the key
this.items = this.itemsRef.snapshotChanges().map(changes => {
return changes.map(c => ({ key: c.payload.key, ...c.payload.val() }));
});