Firebase Firestore在单个文档中具有特定于键的写入权限

时间:2018-05-03 03:40:15

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

我正在使用firestore创建一个upvote / downvote系统。我有一些项目都有独特的ID,我想创建一个'投票'密钥是项目ID和密钥的集合:值对是选民及其投票的uid。我的架构是:

votedDocumentId: {
   user1Id: user1Vote,
   user2Id: user2Vote,
   ...
}

我想根据用户尝试更新的用户ID密钥限制写入权限,他们应该只能更改自己的投票,而不是其他用户投票:

 match /databases/{database}/documents {
    match /votes/{votedDocumentId} {
        allow read;
        allow update: if request.auth.uid == ???
    }

1 个答案:

答案 0 :(得分:0)

据我所知,目前的规则是不可能的。在我看来,这是一个你应该使用云功能的场景。

否则你可以通过用户ID索引文档,这样可以更容易地设置规则:

match /votes/{userId} {
    allow read;
    allow update: if request.auth.uid == userId
}

在那里,您可以查询documentId,但根据您平台上用户的活动,您可能会有数据过量。