firebase firestore拒绝规则
我的firestore规则是
service cloud.firestore {
match /databases/{database}/documents {
match /Runsheets/{RunsheetID} {
allow read : if isAuthenticated() && request.auth.uid == resource.data.RunsheetID;
allow create : if isAuthenticated() && request.auth.uid == request.resource.data.RunsheetID;
allow update, delete: if isAuthenticated() && request.auth.uid == resource.data.RunsheetID ;
}
}
}
function isAuthenticated() {
return request.auth != null ;
}
我尝试使用以下代码获取数据时会出现错误,但是我可以编写DOC。
useEffect(() => {
const getData = async () => {
console.log("getting Data");
const q = query(
collection(db, "Runsheets"),
where("RunsheetID", "==", User.uid)
);
const results = await getDocs(q);
results.forEach((doc) => {
console.log(doc.id, " => ", doc.data());
});
};
getData();
}, []);
我的文档中的数据只有两个文件,
const docRef = await addDoc(collection(db, "Runsheets"), {
starttime: fixdate(datestr),
RunsheetID: User.uid,
}
数据库中的数据已正确存储在数据库中
RunsheetID
"GSZY6HaXSaPzfYowVP04oiLjYG13"
starttime
1656973140
。UID是我从中获得的UID Firebase Auth和Runsheetid相同,
对不起,我对Firebase和Firestore非常陌生
my firestore rules are
service cloud.firestore {
match /databases/{database}/documents {
match /Runsheets/{RunsheetID} {
allow read : if isAuthenticated() && request.auth.uid == resource.data.RunsheetID;
allow create : if isAuthenticated() && request.auth.uid == request.resource.data.RunsheetID;
allow update, delete: if isAuthenticated() && request.auth.uid == resource.data.RunsheetID ;
}
}
}
function isAuthenticated() {
return request.auth != null ;
}
I get error When i try to get data with this following code , However i can write the doc
useEffect(() => {
const getData = async () => {
console.log("getting Data");
const q = query(
collection(db, "Runsheets"),
where("RunsheetID", "==", User.uid)
);
const results = await getDocs(q);
results.forEach((doc) => {
console.log(doc.id, " => ", doc.data());
});
};
getData();
}, []);
the data in my docs has only two fileds
const docRef = await addDoc(collection(db, "Runsheets"), {
starttime: fixdate(datestr),
RunsheetID: User.uid,
}
the data in data base is stored correctly
RunsheetID
"GSZY6HaXSaPzfYowVP04oiLjYG13"
starttime
1656973140
User.uid is the uid i got from firebase auth and is the same as RunsheetID
sorry i am very new to firebase and firestore
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论