允许读取的Firebase安全规则

允许读取的Firebase安全规则,firebase,google-cloud-firestore,firebase-security,Firebase,Google Cloud Firestore,Firebase Security,我正在学习Firebase数据库,并试图建立安全规则。首先,我创建了非常宽松的规则,如下所示: rules_version = '2'; service cloud.firestore { match /databases/{database}/users/{user_id} { allow read, write: if true; } } 我在Firebase控制台中找到了规则游乐场工具,并尝试获取文档: 但当我点击Run时,我会得到“模拟读取拒绝” 我错过了什么?为什么

我正在学习Firebase数据库,并试图建立安全规则。首先,我创建了非常宽松的规则,如下所示:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/users/{user_id} {
    allow read, write: if true;
  }
}
我在Firebase控制台中找到了规则游乐场工具,并尝试
获取
文档:

但当我点击Run时,我会得到“模拟读取拒绝”


我错过了什么?为什么我的规则不允许阅读?我需要更改什么才能允许读写?

您的规则不正确。看起来你编辑的路径太远了。外部匹配项应始终为“/databases/{database}/documents”。如果要允许对users集合的完全访问,整个过程应该如下所示:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{user_id} {
      allow read, write: if true;
    }
  }
}

你的规则就是不正确。看起来你编辑的路径太远了。外部匹配项应始终为“/databases/{database}/documents”。如果要允许对users集合的完全访问,整个过程应该如下所示:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{user_id} {
      allow read, write: if true;
    }
  }
}

谢谢这很有效。我很困惑,当时大多数的例子是如何起作用的。其中许多块没有嵌套的
match
块。不要查看服务“firebase.storage”的块。只使用“cloud.firestore”。啊……我甚至没有注意到这种区别。谢谢。这很有效。我很困惑,当时大多数的例子是如何起作用的。其中许多块没有嵌套的
match
块。不要查看服务“firebase.storage”的块。只使用“cloud.firestore”。啊……我甚至没有注意到这种区别。