【发布时间】:2022-12-07 12:05:45
【问题描述】:
如果用户的 uid 与 userId 匹配(用红色圈出),我试图只允许读取硬币的文档。
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.
根据我在这里阅读的所有内容,似乎以下代码应该可以工作,但事实并非如此。
【问题讨论】:
-
你能分享你用来进行更新操作的代码吗?另外,您如何获取硬币 ID 以进行更新
-
这条规则乍一看是正确的,所以问题很可能出在别处。正如 Dharmaraj 所问,您能否展示我们可以针对这些规则运行以解决问题的最少代码?在该代码中,确保显示符合规则,例如通过在尝试访问数据库之前记录 UID。
标签: javascript firebase google-cloud-firestore firebase-security