javascript - 如何从 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;
解决方案
好的,我想通了。如果有人遇到类似的问题,这里是解决方案:
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;
推荐阅读
- c# - 以编程方式在 XAML 中查找和替换
- cordova - cordova-plugin-firebase 在 android 中工作但在 ios 中不工作
- linux - AWK:如何在不覆盖要打印的第一个参数的情况下按索引和列进行剪切和重新排列
- javascript - 签署 Android 应用程序后 WebRTC 失败
- docker - jenkinsci / docker - 安装的库不会在重建中持续存在
- python - 为什么我在 pandas 访问 MySQL 时得到 Timedelta 类型
- sql - Hive - 跨列/多行的最大值
- python - Numpy 结构化数组无法进行基本的 numpy 操作
- google-apps-script - 从 AdWords 脚本将数据保存到 Google SQL(通过 JDBC)非常慢
- java - ZLIB 解压不工作