我正在嘗試從我的 firestore 資料庫中獲取資料到我的本機專案中。我已經能夠獲取整個集合的資料,但不確定如何分別獲取不同的欄位值。就像我如何將值 FlagQuizscore: 83.33333333333334 WalesQuizscore:80 coin:46 從我的 firestore 資料庫顯示到我的 React Native 專案中?
此代碼顯示整個集合的值:
import {useEffect, useState} from "react";
export default function ModesScreen({navigation}) {
const email = auth.currentUser.email
const userCollectionRef = collection(db,"Users")
const [users,setUsers] = useState([])
useEffect(()=>{
const getUsers = async () => {
const data = await getDocs(userCollectionRef)
setUsers(data.docs.map((doc)=>({...doc.data(), id: doc.id})))
}
getUsers()
},[])
return (
<View style={styles.container}>
{users.map((users)=>{return<View key={doc.id}>
<Text>{users.WalesQuizscore}</Text>
<Text>{users.coins}</Text>
</View>})}
</View>
);
}
我的資料庫的結果我想進入我的本機專案:

uj5u.com熱心網友回復:
如果您只是想獲取單個檔案,那么您可以使用getDoc()函式。也不需要將用戶宣告為陣列。嘗試重構代碼,如下所示:
import {useEffect, useState} from "react";
export default function ModesScreen({navigation}) {
const email = auth.currentUser.email
const userDocRef = doc(db,"Users", email)
const [user, setUser] = useState({})
useEffect(() => {
const getUser = async () => {
const snap = await getDoc(userDocRef)
setUser({email, ...snap.data()})
}
getUser()
},[])
return (
<View style={styles.container}>
{return <View key={user.email || 'email'}>
<Text>{user.WalesQuizscore}</Text>
<Text>{user.coins}</Text>
</View>})}
</View>
);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/403676.html
標籤:
