【问题标题】:Super basic firestore security rule won't work超级基本的 Firestore 安全规则不起作用
【发布时间】:2026-02-17 19:40:01
【问题描述】:

我无法获得可以在操场上编写的最简单的 Firestore 安全规则。只是为了测试,我制作了一个 Cloud Firestore 数据库,其中包含一个名为 users 的集合。它有一个字段stuff。在操场上,这些是我的规则:

service cloud.firestore {
  match /databases/{database}/documents {    
    match /users/{user} {
      allow read, write: if true;
    }

    match /{document=**} {
      allow read, write: if false;
    }
  }
}

我正在模拟到达位置:/databases/(default)/documents/users,但由于document=** 匹配,它总是失败,并且永远不会匹配/users/{user}。为什么是这样!感觉就像我在遵循文档中最基本的示例。

添加了几个屏幕截图以进行澄清。

【问题讨论】:

  • 请编辑问题以更清楚地显示您正在尝试的不起作用的内容。我建议添加控制台的屏幕截图以显示细节,以便任何人都可以匹配并重现它。
  • @Doug Stevenson 我添加了几个屏幕截图。应该 100% 明确地说明发生了什么。

标签: firebase google-cloud-firestore firebase-security


【解决方案1】:

在“规则游乐场”的位置字段中,您无需输入/databases/(default)/documents/。这部分路径已被考虑在内,因为它显示在带有浅灰色(或灰显)/databases/(default)/documents 字符串的可编辑字段上方。

因此,只需输入users/C8YDk... 即可,因为您的规则允许阅读文档,因为overlapping matching statement

有关如何使用游乐场的更多信息,请访问here

【讨论】:

  • 是的,就是这样。我知道它一定是那样的小东西。