【发布时间】:2021-10-16 20:48:04
【问题描述】:
根据 firebase 的文档,您可以使用 get() 非常简单地获取文档
但由于某种原因,在我的代码中它总是显示没有这样的文档,即使它确实存在,这就是我正在做的:
useEffect(() => {
console.log(user, "This is the user UID:"+user.uid)
const userDoc = db.collection('usuarios').doc(user.uid);
const doc = userDoc.get();
if (!doc.exists) {
console.log('No such document!');
}
else {
userDoc
.onSnapshot(snapshot => {
const tempData = [];
snapshot.forEach((doc) => {
const data = doc.data();
tempData.push(data);
});
setUserData(tempData);
})
}
}, [user]);
这是console.log() 显示的内容:
这就是它在 firebase 中的样子:
【问题讨论】:
-
最常见的原因是文档 ID 中有一个不可见的字符,例如它之前或之后的空格。我建议使用
console.log("'"+doc.id+"'")之类的内容打印数据库中的所有文档 ID,以查看不匹配的原因。 -
不是这样,当我使用
auth.createUserWithEmailAndPassword创建一个新用户时,我还根据 UID 为该用户创建一个文档,如下所示:db.collection('usuarios').doc(auth.user.uid).set并在文档中添加 uid .
标签: reactjs firebase google-cloud-firestore