我有以下内容:
match /direct/{postId} {
allow read, write: if postId.includes(request.auth.uid);
}
但是,我只允许在文档ID(postId)包含字符串的情况下进行读写。 .includes不适用于我的安全规则。
编辑:它应该匹配一个子字符串,而不是整个文档ID
Edit2 https://imgur.com/hGTa9Iw 集合称为直接,其中每个文档ID是一个字符串,其中包含2个uid。 >
任何帮助将不胜感激。谢谢。
答案 0 :(得分:0)
文档ID是一个字符串,据我所知,安全规则中的String class没有include
方法。
尽管它确实具有matches
方法,所以您可以使用它来测试文档ID是否包含带有正则表达式的子字符串。
类似的东西:
match /direct/{postId} {
allow read, write: if postId.matches(request.auth.uid);
}
postId
与用户的UID匹配的有效读取:
尝试阅读其他文档:
更新:测试子字符串:
allow read: if postId.matches(".*"+request.auth.uid+".*");