Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 路径中带有空格的Firestore安全规则_Firebase_Firebase Authentication_Google Cloud Firestore_Firebase Security - Fatal编程技术网

Firebase 路径中带有空格的Firestore安全规则

Firebase 路径中带有空格的Firestore安全规则,firebase,firebase-authentication,google-cloud-firestore,firebase-security,Firebase,Firebase Authentication,Google Cloud Firestore,Firebase Security,我需要为名为测试用例的子集合创建firestore规则。由于firestore规则不是用javascript编写的,所以我似乎无法在匹配后获取路径,以便在没有错误的情况下接受空格 我试过用引号、反斜杠来表示转义字符,并将整个路径用引号括起来。我在firestore文档或堆栈溢出中没有找到任何与此相关的内容 在下面的示例中,我如何在匹配后的路径(包括测试用例)中允许空格 service cloud.firestore { match /databases/{database}/documen

我需要为名为测试用例的子集合创建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();
      }
    }

根据火力基地支援:

要解决此问题,可以使用%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(); 
} 
} 
} 

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

根据火力基地支持:

要解决此问题,可以使用%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(); 
} 
} 
} 

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

路径中是否可能有空间?是的,它在其他地方运行良好。我有一些文档的名字来自有空格的客户机,当作为通配符传递时,它们可以正常工作。当我需要指定特定路径时,我遇到了一个问题。另外,请看一个例子,路径中是否可能有一个空格?是的,它在其他地方工作得很好。我有一些文档的名字来自有空格的客户机,当作为通配符传递时,它们可以正常工作。当我需要指定特定路径时,我遇到了一个问题。另外,请参见示例如果有+?@jeevacanesane如果文档有+,则安全规则将需要URL编码的值+,即%2B。是查找其他URL编码值的有用工具。如果存在+?@jeevacanesane,情况如何?如果文档有+,则安全规则将需要URL编码值+,即%2B。是查找其他URL编码值的有用工具。