Firestore安全规则,路径中包含空格

时间:2018-06-05 20:07:07

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

我需要为名为“Test Cases”的子集合创建一个firestore规则。由于firestore规则不是用javascript编写的,我似乎无法在匹配后获取路径以接受没有错误的空间。

我尝试过引号,转义符用于转义字符,并将整个路径放在引号中。我没有在firestore文档或堆栈溢出中找到任何相关内容。

如何在匹配后允许路径中的空格(在下例中)包含“测试用例”的路径?

service cloud.firestore {

  match /databases/{database}/documents {

    match /companies/{company} {
      allow read: if getUserCompany() == company || userHasAnyRole(['Super', 'Manager']);
      allow write: if getUserCompany() == company || userHasAnyRole(['Super', 'Manager']); 

      match /Test Cases/{tests} {
        allow read, write: if isSignedIn();
      }
    }

1 个答案:

答案 0 :(得分:1)

根据消防基地的支持:

要解决此问题,您可以使用%20对安全规则中的空间进行编码。所以规则是:

Service cloud.firestore { 

match /databases/{database}/documents { 

match /companies/{company} { 
allow read: if getUserCompany() == company || userHasAnyRole(['Super', 'Manager']); 
allow write: if getUserCompany() == company || userHasAnyRole(['Super', 'Manager']); 

match /Test%20Cases/{tests} {                      <------- 
allow read, write: if isSignedIn(); 
} 
} 
} 

我尝试过并为我工作。如果您有任何问题,请试一试并告诉我们。