首页 > 解决方案 > 如何从 Firestore 集合中的文档中获取数据?

问题描述

我正在使用 React Native 和 Firestore,并且在从我的 Firestore 文档中获取名称 (Steve Jobs) 的值时遇到了很多麻烦。我想将我的 displayName 状态设置为 Steve Jobs。我可以将文档和子集合添加到 Firestore,但我的问题是从中读取。我已经包含了我的代码的简化版本。

在此处输入图像描述

import React, { useEffect, useState } from "react";
import { View, Text, SafeAreaView } from "react-native";
import firebase from "../../firebase/fbConfig";

const ProfileHeader = () => {
    const [displayName, setDisplayName] = useState(null);

    const UID = firebase.auth().currentUser.uid;

    let db = firebase.firestore();

    useEffect(() => {
    // get the name Steve Jobs from the document with UID in the users collection

    });

    return (
        <>
            <SafeAreaView>
                <Text>{displayName}</Text>
            </SafeAreaView>
        </>
    );
};

export default ProfileHeader;

标签: javascriptreact-nativegoogle-cloud-firestore

解决方案


好的,我想通了。如果有人遇到类似的问题,这里是解决方案:

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;

推荐阅读