尝试访问ID为uid的Firestore文档失败,找不到文档。
我有一个非常简单的设置,并尝试学习Vue和利用Firebase功能。我已经成功使用Firebase身份验证,但是在尝试访问Firestore中的文档(其ID与用户的uid相同)时,找不到文档。
将安全规则设置为尽可能开放,这样它们就不会引起问题(您不应该在生产中使用它):
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId} {
allow read, write: if true;
}
}
}
firebase的Js代码
firebase.initializeApp(config)
// firebase utils
const db = firebase.firestore()
// firebase collections
const usersCollection = db.collection('users')
usersCollection.doc('testid').get().then((userSnapshot) => {
if (userSnapshot.exists) {
console.log('User data:', userSnapshot.data())
} else {
console.log('No such document!')
}
}
运行先前的代码成功,并且我从Firestore获取ID为 testid 的文档的数据。但是当我用用户的uid替换 testid 时 KmJ9JC5Zb0O45d8xcndVgAowIzF2 ,找不到文档。
Firestore中的数据应该没问题:
Link to image showing Firestore data(由于信誉不佳,无法在此处直接添加图片...:)
这个错误一定很简单,但是我已经花了很长时间来解决这个问题,并决定向社区询问。
答案 0 :(得分:0)
问题可能与路径有关。
尝试这种方法,而不要使用db.collection('users').doc('uid')
const userData = await firebase
.firestore()
.doc(`users/${userToken.uid}`)
.get();
console.log(userData.data());
希望有帮助!