[英]How to retrieve the user's info that is currently logged in from Firestore/Firebase?
大家好,我有一个关于 Firestore users
的集合,每个集合都有displayName
、 email
和uid
,并试图获取当前登录用户的 displayName 。
目前下面的代码正在正确获取所有用户,但不是登录的特定用户。注释掉的代码有点像一个解决方案,但我想我没有正确地做。 我已经尝试了一段时间,但找不到真正的方法,它应该很简单,但不知道我错过了什么。
const [users, setUser] = useState([])
useEffect(() => {
;(async () => {
const users: any = []
const db = getFirestore()
const userRef = collection(db, 'users')
// const userName = getAuth().currentUser?.displayName
// const userDocument = query(userRef, where('displayName', '==', userName))
// console.log('name', userName)
try {
const snapshot = await getDocs(userRef)
snapshot.docs.forEach((doc) => {
// const { displayName } = doc.data()
users.push({
...doc.data(),
id: doc.id,
// displayName,
})
})
console.log(users)
setUser(users)
} catch (err: any) {
console.log(err.message)
}
})()
}, [])
firebase
uid
和userProfileconst uid = firebase.auth().currentUser.uid;
const currentUserProfile = firebase.firestore().collection("users").doc(uid);
useEffect
中获取需要的数据useEffect(() => {
currentUserProfile.get()
.then((doc) => {
// const currentUserInfo = doc.data();
const currentUserDisplayName = doc.data().displayName;
// console.log(currentUserDisplayName)
// now you can update your state with this value from here if required
})
.catch((err) => {alert("Error in displaying Name!")})
}, [])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.