Javascript 如何从Firestore集合中的文档中获取数据?
我正在与React Native和Firestore合作,从我的Firestore文档中获取名称(Steve Jobs)的值时遇到了很多麻烦。我想将我的displayName状态设置为Steve Jobs。我能够将文档和子集合添加到Firestore,但我的问题是从中读取。我已经包括了我的代码的简化版本Javascript 如何从Firestore集合中的文档中获取数据?,javascript,react-native,google-cloud-firestore,Javascript,React Native,Google Cloud Firestore,我正在与React Native和Firestore合作,从我的Firestore文档中获取名称(Steve Jobs)的值时遇到了很多麻烦。我想将我的displayName状态设置为Steve Jobs。我能够将文档和子集合添加到Firestore,但我的问题是从中读取。我已经包括了我的代码的简化版本 import React,{useffect,useState}来自“React”; 从“react native”导入{View,Text,SafeAreaView}; 从“../../fi
import React,{useffect,useState}来自“React”;
从“react native”导入{View,Text,SafeAreaView};
从“../../firebase/fbConfig”导入firebase;
const ProfileHeader=()=>{
const[displayName,setDisplayName]=useState(null);
const UID=firebase.auth().currentUser.UID;
设db=firebase.firestore();
useffect(()=>{
//从用户集合中包含UID的文档中获取名称Steve Jobs
});
返回(
{displayName}
);
};
导出默认的ProfileHeader;
好的,我想出来了。如果有人遇到类似问题,以下是解决方案:
import React, { useEffect, useState } from "react";
import { View, Text, SafeAreaView } from "react-native";
import firebase from "../../firebase/fbConfig";
const ProfileHeader = () => {
const [displayName, setDisplayName] = useState([]);
const UID = firebase.auth().currentUser.uid;
let db = firebase.firestore();
const getData = async () => {
const snapshot = await db.collection("users").doc(UID).get();
setDisplayName(snapshot.data());
};
useEffect(() => {
getData();
}, []);
return (
<>
<SafeAreaView>
<Text>{displayName.name}</Text>
</SafeAreaView>
</>
);
};
export default ProfileHeader;
import React,{useffect,useState}来自“React”;
从“react native”导入{View,Text,SafeAreaView};
从“../../firebase/fbConfig”导入firebase;
const ProfileHeader=()=>{
const[displayName,setDisplayName]=useState([]);
const UID=firebase.auth().currentUser.UID;
设db=firebase.firestore();
const getData=async()=>{
const snapshot=await db.collection(“users”).doc(UID.get();
setDisplayName(snapshot.data());
};
useffect(()=>{
getData();
}, []);
返回(
{displayName.name}
);
};
导出默认的ProfileHeader;
import React, { useEffect, useState } from "react";
import { View, Text, SafeAreaView } from "react-native";
import firebase from "../../firebase/fbConfig";
const ProfileHeader = () => {
const [displayName, setDisplayName] = useState([]);
const UID = firebase.auth().currentUser.uid;
let db = firebase.firestore();
const getData = async () => {
const snapshot = await db.collection("users").doc(UID).get();
setDisplayName(snapshot.data());
};
useEffect(() => {
getData();
}, []);
return (
<>
<SafeAreaView>
<Text>{displayName.name}</Text>
</SafeAreaView>
</>
);
};
export default ProfileHeader;