【发布时间】:2019-12-24 10:46:52
【问题描述】:
我制作了一个应用程序,用户可以在其中注册和登录,当用户首次注册时,他/她的信息存储在 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);
}
但相反,我一直得到我之前在控制台日志中显示的结果,而不是实际数据。
【问题讨论】:
-
我认为您实际上并没有获取数据,而只是获取了可观察到的数据
-
如果你不介意可以给我一个简单的解释吗?因为我对应用程序设计和 Ionic 比较陌生。
-
我看到有人推荐使用 valueChanges(),但这对我不起作用,我收到此错误:imgur.com/a/989zsRc
-
observable 上没有 valueChanges。正如我所说,这里的返回类型是可观察的,因此您遇到了这个问题。你能看看这个链接github.com/angular/angularfire2/blob/master/docs/rtdb/…
-
您好,我已经添加了答案,您可以检查一下吗?
标签: typescript firebase firebase-realtime-database angularfire2