【问题标题】:Firebase Firestore key-specific write permissions in a single document单个文档中的 Firebase Firestore 密钥特定​​写入权限
【发布时间】:2018-10-13 06:26:57
【问题描述】:

我正在使用 Firestore 制作赞成/反对票系统。我有所有具有唯一 ID 的项目,我想创建一个“投票”集合,其中键是项目 ID,键:值对是选民的 uid 及其投票。我的架构是:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    据我所知,这在当前规则下是不可能的。在我看来,这是您应该使用云功能的场景。

    否则,您可以按用户 ID 索引文档,这将使您更容易设置规则:

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

    您可以在其中查询 documentId,但根据您平台上用户的活动,您可能会遇到数据过剩。

    【讨论】:

      猜你喜欢
      • 2019-11-02
      • 2018-06-27
      • 2021-10-12
      • 1970-01-01
      • 2020-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-04
      相关资源
      最近更新 更多