繁体   English   中英

如何在本机反应中从firestore数据库中获取字段值

[英]How to get field value from firestore database in react native

我正在尝试从我的 firestore 数据库中获取数据到我的 react native 项目中。 我已经能够获取整个集合的数据,但不确定如何单独获取不同的字段值。 就像我如何将值 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>
    );
}

我的数据库中的结果我想进入我的 react native 项目:

在此处输入图像描述

如果您只是想获取单个文档,则可以使用getDoc() function。 也无需将用户声明为数组。 尝试重构代码,如下所示:


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>
  );
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM