firebase 如何在写之前检查文档所有者?

ajsxfq5m  于 2022-11-25  发布在  其他
关注(0)|答案(2)|浏览(95)

如何在允许用户创建之前检查文档所有者?步骤:
1.文档已由同一所有者创建。
1.之后,同一个所有者将尝试在文档中创建属性和值。
document.owner发布时出错。

//only allow create in moviesCommentID/{document} when document is owned by the user
match /moviesCommentID/{document=**} {
    allow create: if request.auth != null && document.owner == request.auth.uid;
}

任何帮助都将不胜感激。

sz81bmfz

sz81bmfz1#

1-创建

您需要在要更改的Firestore文档中有一个存储所有者uid的字段

allow create: if request.auth != null && resource.data.ownerUid == request.auth.uid;

2-更新:

使用与“create”相同的方法(所有者实际上是登录的人),但还要添加一些内容,说明他们不能将所有者更改为其他用户

allow update: if request.resource.data.ownerUid== resource.data.ownerUid;

请注意,request.resource变量包含文档的未来状态

jslywgbw

jslywgbw2#

规则中的document变量是一个字符串,其值为文档ID。
Firestore没有任何内置的文档所有者的概念。但是如果文档数据中有一个owner字段,你可以在规则中以resource.data.owner的形式访问它。还可以查看Firebase文档中关于安全规则中数据验证的内容。

相关问题