firebase - Firebase Firestore - 在 React Native 中显示查询的数据
问题描述
我需要一些在文档中无法轻松找到的帮助。
因此,我已经了解如何在注册时在 firebase 中创建文档并将文档的 ID 设置为当前用户的 uid。现在我想引用当前用户的文档并在整个屏幕中使用它的数据。
这是我用来检索数据的函数:
const user = auth.currentUser;
const GettingUserData = async() => {
const userData = firestore.collection('users').doc(user.uid);
const doc = await userData.get();
if (!doc.exists) {
console.log('No such document!');
} else {
console.log('User data:', doc.data());
}
}
我将如何以{data.displayName}之类的方式使用doc.data()中的数据<Text>
</Text>
帮助或通读链接将不胜感激!
解决方案
要管理远程数据,您需要一个状态来存储该信息。
如果您使用的是功能组件:
const [userData, setUserData] = React.useState(null)
const user = auth.currentUser;
const GettingUserData = async() => {
const userData = firestore.collection('users').doc(user.uid);
const doc = await userData.get();
if (!doc.exists) {
console.log('No such document!');
} else {
console.log('User data:', doc.data());
setUserData(doc.data)
}
}
return (<View><Text>{userData?.name}</Text></View>)
如果您使用的是类组件:
const user = auth.currentUser;
const GettingUserData = async() => {
const userData = firestore.collection('users').doc(user.uid);
const doc = await userData.get();
if (!doc.exists) {
console.log('No such document!');
} else {
console.log('User data:', doc.data());
this.setState({userData: doc.data()})
}
}
return (<View><Text>{this.state.userData?.name}</Text></View>)
推荐阅读
- javascript - 如何在前端获取 api 主机?反应/AXIOS
- python - 如何以编程方式加载和绘制/截屏字体
- rust - 无法使用裸机 Rust 闪烁 Raspberry Pi LED
- python - 将数据框从列转换为行
- typescript - 键入强大的实用程序以将 KV 对数组转换为原始字典
- amazon-web-services - 在 Route 53 中同步多个 DNS 区域?
- python - 为什么后续查询无法找到新插入的行?
- php - Laravel 'Str' 辅助类不适用于 Unicode
- sql - SQL查询检查一列的值是否大于另一列
- python - 与打开/现有的 FireFox 浏览器通信