要在构造函数中获取经过身份验证的用户的UID,并使用该UID进行查询,可以使用Angular的依赖注入机制和Firebase的Firestore库。下面是一个示例代码:
首先,在您的组件中导入必要的模块和服务:
import { Component, OnInit } from '@angular/core';
import { AngularFireAuth } from '@angular/fire/auth';
import { AngularFirestore } from '@angular/fire/firestore';
import { Observable } from 'rxjs';
@Component({
selector: 'app-your-component',
templateUrl: './your-component.component.html',
styleUrls: ['./your-component.component.css']
})
export class YourComponent implements OnInit {
uid: string;
user: Observable;
constructor(private afAuth: AngularFireAuth, private firestore: AngularFirestore) { }
ngOnInit() {
this.afAuth.authState.subscribe(user => {
if (user) {
this.uid = user.uid;
this.user = this.firestore.collection('users').doc(this.uid).valueChanges();
}
});
}
}
然后,在您的模板中使用获取到的用户信息:
User ID: {{ uid }}
User Name: {{ userData.name }}
User Email: {{ userData.email }}
在上面的示例中,我们使用AngularFireAuth
服务来订阅用户身份验证状态的更改。一旦用户成功登录或注销,authState
observable将发出相应的用户对象。我们将用户的UID存储在uid
变量中,并使用它来查询Firestore中的用户文档。
通过使用valueChanges()
方法,我们可以获取用户文档的数据,并将其存储在user
变量中。在模板中,我们使用async
管道来订阅user
observable,并在获取到数据后显示用户信息。
请注意,这只是一个示例,您需要根据您的实际需求进行适当的修改。