Firebase 规则 - 如果用户的 uid 等于文档的字段值 userId 则允许读取

问题描述 投票:0回答:1

我试图仅在用户的 uid 与 userId 匹配(以红色圈出)时才允许读取硬币的文档。

enter image description here

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    
    match /{document=**} {
        allow read, write: if false;
    }
    
    match /coins/{coinId} {
        allow read: if request.auth != null && resource.data.userId == request.auth.uid;
        allow write: if request.auth != null;
    }
  }
}

当我登录我的帐户时,此规则在控制台中返回错误。并且没有数据显示。

Uncaught error in snapshot listener: FirebaseError: Missing or insufficient permissions.

根据我在这里读到的所有内容,下面的代码似乎应该有效,但事实并非如此。

javascript firebase google-cloud-firestore firebase-security
1个回答
0
投票

有同样的问题。

更改: 资源.data.userId == request.auth.uid;

致: request.resource.data.userId == request.auth.uid;

© www.soinside.com 2019 - 2024. All rights reserved.