firebase Firestore规则

mm9b1k5b  于 2023-03-31  发布在  其他
关注(0)|答案(1)|浏览(170)

我的Firestore数据库中有以下规则。但我仍然不断收到Firestore的通知,说我在数据库中设置的规则不安全。请参阅下面的代码。有什么建议或建议可以使数据库更安全吗?

rules_version = '2';
    service cloud.firestore {
    match /databases/{database}/documents {

match /{document=**} {
  allow read: if true;
  allow write: if userIsAdmin();
}

match /Basket/{Basket} {
  allow read, update, delete: if userOwnPost();
  allow create: if request.auth.uid != null;

}

match /AllOrders/{AllOrders} {
    allow read, create, update: if userOwnPost(); 

}

 match /Items/{Items} {
    allow update: if userOwnPost(); 

}

match /Voucher/{Voucher} {
    allow update: if userOwnPost(); 

}

match /User/{User} {
    allow read, update: if userOwnPost();
  allow create: if request.auth.uid != null;
}

function userIsAdmin() {
    return getUserData().userRole == 'Admin';
}

function getUserData() {
    return get(/databases/$(database)/documents/User/$(request.auth.uid)).data;
}

function userOwnPost() {
  return getUserData().objectId == request.auth.uid;
}

      }
    }
wnvonmuf

wnvonmuf1#

您的规则中有一些重叠的match语句:

match /{document=**} {
  allow read: if true;
  allow write: if userIsAdmin();
}

您允许对Firestore数据库中的所有文档进行读访问。
如文档(“重叠匹配语句”一节)中所述,“在多个allow表达式匹配请求的情况下,如果任何条件为真,则允许访问”。
所以你其他的安全规则都和这条重叠了。

相关问题