在我看来,这是针对用户生成的内容的最基本的身份验证方案,给出了一个称为“帖子”的集合:
到目前为止,我发现的所有示例似乎都依赖于文档ID与用户ID相同,后者仅适用于用户的“个人资料”数据(同样,所有示例似乎都适用于这种有限的情况)。
创建文档时,似乎没有关于经过身份验证的用户身份的元数据,因此似乎我必须自己将ID存储在文档上,但是我无法通过至此,创建一个工作示例。此外,由于用户ID是由客户端设置的,因此这也为用户提供了与其他用户一样创建文档的机会。
我觉得这里缺少基本的东西,因为这必须是最基本的情况,但尚未找到任何简洁的示例。
非常感谢您的帮助,谢谢!
答案 0 :(得分:1)
此答案来自此github gist。基本上,在文档收集帖子中,有一个名为uid的字段,它检查是否与用户uid相匹配。
// Checks auth uid equals database node uid
// In other words, the User can only access their own data
{
"rules": {
"posts": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
}
}
}
-编辑-
DSL规则
match /Posts/{document=**}{
allow read : if uid == request.auth.uid;
allow write: if uid == request.auth.uid;
}