首頁>Program>source

我將firebase使用者配置檔案資料文件ID儲存為使用者ID,現在我想使用当前登錄的使用者ID从firebase使用者集合中获取当前登錄的使用者資料並將其轉換為角度模型物件我尝試了一些方法但這些方法给了我錯誤 .

首先,我使用下面的代碼

获取我当前登錄的使用者ID
this.afAuth.auth.onAuthStateChanged(user => {
    if (user) {
    this.selectedid = user.uid;

建立User物件後,最後將其分配给firebase文件資料,如下所示

getnannies() {
    return this.db.collection('nanny').doc(this.selectedid).valueChanges() 
    as Nanny;
}

(保姆是我的模特班的型別) 然後我尝試訪問该文件資料,如下所示

nanny:Nanny;
this.nanny = this.serviceClass.getnannies();
console.log(this.nanny.name);

但是這種方法给了我錯誤,我想知道如何做到這一點.我的完整代碼附在下面

這是我的服務檔案

export class GetNannyDetailsService {
selectedid: string;
constructor(private db: AngularFirestore, private afAuth: AngularFireAuth, 
private router: Router) {
}
  parseNanny() {
    this.afAuth.auth.onAuthStateChanged(user => {
      if (user) {
        this.selectedid = user.uid;}});
  }
getnannies() {
    return this.db.collection('nanny').doc(this.selectedid).valueChanges() 
as Nanny;
}

這是我的个人資料.component.ts

export class ProfileComponent implements OnInit {
pronan:Nanny;
constructor(private profile: GetNannyDetailsService) {
}
ngOnInit() {
    this.profile.parseNanny();
    this.pronan = this.profile.getnannies();
    console.log(this.pronan.name);}

這是我的保姆模式

export interface Nanny {
  email?: string;
  password?: string;
  nannyId?: string;
  name?: string;
  address?: string;
  number?: string;
  gender ?: string;
  town?: string;
  jobType ?: string;
  birthdate?: Date;
  hourlyRate?: number;
  availability?: string;
  bio?: string;
  imgurl?: string;
}

最後控製台顯示"未定義"請帮帮我。

最新回復
  • 2019-9-12
    1 #

    在服務檔案中使用一个功能.

    getNanny() {
            let s: Subject<Nany> = new Subject();
                this.afAuth.auth.onAuthStateChanged(user => {
                  if (user) {
                      this.db.collection('nanny').doc(user.id).get().subscribe(
                          next => {
                          s.next(next.data())
                          });
                   }
                });
                return return s as Observable<Nany>
            }
    

    在元件檔案中,通過订阅服務方法获取物件。

    pronan:Nanny;
    constructor(private profile: GetNannyDetailsService) {
    }
    ngOnInit() {
        this.profile.getnannies().subscribe(nany=>{
        this.pronan=nany
        consple.log(nany)
        });
    }
    

  • c#:調整大小時按钮內容超出按钮的範圍
  • node.js:nodejs使用請求編碼