【发布时间】:2019-09-08 08:42:05
【问题描述】:
所以我在 firebase 中为我的数据库编写规则。我试图让一个人只删除他自己的帖子。但是当我测试它时,任何人都可以删除任何人的帖子。
我试过写 if request.auth.uid==resource.data.User.uid 但它不起作用
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /posts/{postId}{
allow delete: if request.auth.uid==resource.data.User.uid
allow read;
allow write,update: if request.auth.uid!=null;
}
}
}
我尝试通过将其更改为进一步简化它
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /posts/{postId}{
allow delete: if request.auth.uid==1
allow read;
allow write,update: if request.auth.uid!=null;
}
}
}
但仍然任何人都可以删除任何人的帖子。显然没有人将 uid 设为 1。
这是我的帖子集
Content "Hello"
Title "Hey"
User
displayName "Vikram Singh Bedi"
email "vikrambedi_bt2k16@dtu.ac.in"
uid "dCQvboYvffQ1kOqkMqgs2txNKvo1"
comments 0
createdAt 8 September 2019 at 14:10:31 UTC+5:30
favorites 0
我希望只有创建帖子的人能够删除它。
这是删除帖子的代码
<button
className="delete"
onClick={() => {
firestore.doc(`posts/${id}`).delete();
}}
>
【问题讨论】:
-
您能否提供您的数据库结构的屏幕截图
-
@FrankvanPuffelen 检查编辑
标签: firebase google-cloud-firestore firebase-security