根據 firebase 的檔案,您可以使用
這是它在 firebase 中的樣子:

uj5u.com熱心網友回復:
const doc = userDoc.get();
if (!doc.exists) {
.get回傳一個承諾,因此您正在檢查.exists承諾的屬性,即undefined. 您將需要等待該承諾解決,或者使用.then:
userDoc.get().then(doc => {
if (!doc.exists) {
// etc
}
});
或者通過將您的代碼放在一個async函式中并awaiting 承諾:
const doc = await userDoc.get();
if (!doc.exists) {
// etc
}
uj5u.com熱心網友回復:
如果您使用的是 firebase 8 網路版本,則userDoc.get()回傳一個承諾,而不是檔案:
userDoc.get().then((doc) => {
if (!doc.exists) {
console.log('No such document!');
} else {
const tempData = [];
const data = doc.data();
tempData.push(data);
setUserData(tempData)
console.log('it worked')
}
}).catch((error) => {
console.log("Error getting document:", error);
});
您可以在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises 中獲取有關 promise 的更多資訊。
uj5u.com熱心網友回復:
在您的代碼中,您使用 get 方法來獲取用戶資料并且 get 不提供快照。此外,您錯過了 get() 將回傳一個承諾,因此您必須使用 async-await 或 .then 等進行處理。
useEffect(() => {
console.log(user, "This is the user UID:" user.uid);
getUser(user.uid).then(userData => {
setUserData(userData);
});
}, [user]);
const getUser = async (id) => {
try {
const user = await db.collection('usuarios').doc(id).get();
const userData = user.data();
return userData;
} catch (err){
console.log('Error during get user, No such document!');
return false;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/322665.html
標籤:反应 火力基地 谷歌云firestore
