Firebase Firestore安全规则允许文档ID包含字符串

时间:2020-08-09 12:55:56

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

我有以下内容:

match /direct/{postId} {
   allow read, write: if postId.includes(request.auth.uid);
}

但是,我只允许在文档ID(postId)包含字符串的情况下进行读写。 .includes不适用于我的安全规则。

编辑:它应该匹配一个子字符串,而不是整个文档ID

Edit2 https://imgur.com/hGTa9Iw 集合称为直接,其中每个文档ID是一个字符串,其中包含2个uid。

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

文档ID是一个字符串,据我所知,安全规则中的String class没有include方法。

尽管它确实具有matches方法,所以您可以使用它来测试文档ID是否包含带有正则表达式的子字符串。

类似的东西:

match /direct/{postId} {
   allow read, write: if postId.matches(request.auth.uid);
}

postId与用户的UID匹配的有效读取:

enter image description here

尝试阅读其他文档:

enter image description here

更新:测试子字符串:

  allow read: if postId.matches(".*"+request.auth.uid+".*");