以数字开头的集合的 Firebase 规则不起作用

Firebase rule for collection start with number doesn't work

我有一个名为 2022collection 的集合,但是当我在 Firestore 规则中设置读取访问权限时,它出错了,我搜索了文档和 Whosebug,但没有看到任何关于如何正确编写规则以允许以数字开头的集合。如果我登录到应用程序,我可以很好地写入和读取它,但无法制定 firestore 规则以使其公开可读。以字母开头的集合规则工作正常,但数字完全错误。

如何为以数字开头的 document/collection 创建 Cloud Firestore 规则?

以下是我尝试过的一些方法,显然都没有用。我认为应该有更好的文档,因为我找不到任何解释它的东西。如果存在这样的文档,很高兴被证明是错误的,我一直在搜索 here.

却没有找到它们

您可以使用通配符读取集合名称,然后使用matches() 检查它是否以数字开头。尝试以下规则:

match /{col}/{docId} {
  allow read, write: if col.matches("^[0-9].*");
}   

请注意,此规则将应用于所有集合,因为您有通配符。

我最终通过更改我的代码来修复它

match /2022users/{2022users} {
    allow read;
    }

match /2022users/{users2022} {
    allow read;
    }

更改第二个字段后,我能够保存规则并读取集合 2022users。