gpt4 book ai didi

typescript - 从 firebase 检索用户配置文件数据并显示

转载 作者:搜寻专家 更新时间:2023-10-30 21:49:54 25 4
gpt4 key购买 nike

我使用以下代码在 firebase 中创建用户配置文件:

username: string
msgnumber: number
level: number

constructor(private fire:AngularFireAuth,private db :AngularFireDatabase,public navCtrl: NavController, public navParams: NavParams) {

}

createProfile() {

this.fire.authState.take(1).subscribe(auth => {

this.db.object(`profile/${auth.uid}`).set({
username: this.username,
msgnumber: 0,
level: 0
}).then(() =>
this.navCtrl.setRoot(TabsPage));
})
}

它正在工作。现在我正在尝试获取用户数据并将其显示在他们的个人资料页面上。

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import {AngularFireAuth} from 'angularfire2/auth';
import {AngularFireDatabase,FirebaseListObservable} from 'angularfire2/database';


@Component({
selector: 'page-profile',
templateUrl: 'profile.html'
})

export class ProfilePage {
profileData: FirebaseListObservable<any>

constructor(private fire:AngularFireAuth,private db :AngularFireDatabase,public navCtrl: NavController) {

this.fire.authState.subscribe(auth =>{
this.profileData = this.db.list(`profile/${auth.uid}`);
console.log(this.profileData);
});
}
}

我尝试过类似的方法,但看起来不起作用。问题是我想我无法理解对象/列表可观察对象或通常如何检索数据以及对象可观察对象如何工作。检查互联网,我猜人们正在使用它们来检索数据?

数据库: db

最佳答案

你走对了。要最终检索数据,您需要订阅 到分配给 this.profileData 的第二个可观察对象。

像这样:

this.fire.authState.subscribe(auth => {
// subscribe to the observable
this.db.list(`profile/${auth.uid}`).valueChanges().subscribe(profile => {
console.log(profile);
});
});

现在为了避免嵌套,您可以使用 rxjs 为您提供的 switchMap 运算符。

结果是这样的:

this.profileData$ = this.fire.authState.switchMap(auth => this.db.list(`profile/${auth.uid}`).valueChanges());
this.profileData$.subscribe(profile => console.log(profile))

关于typescript - 从 firebase 检索用户配置文件数据并显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46853450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com