【发布时间】:2020-01-23 16:46:59
【问题描述】:
我正在通过身份验证为 Firebase 应用制定安全规则。
我希望只有用户能够访问他自己的用户文档。
我有这个安全规则:
match /users/{uid} {
allow read, update: if request.auth.uid == uid;
allow create: if request.auth.uid != null;
}
但是当我运行客户端代码时,它给出了错误:
[Firestore]:状态{code=PERMISSION_DENIED, description=Missing 或 权限不足。,cause=null}
在客户端代码中,我检查具有用户 uid 的文档是否已经存在(如果不存在,我将数据写入 firestore):
final QuerySnapshot result = await Firestore.instance
.collection('users')
.where('uid', isEqualTo: user.uid)
.getDocuments();
documents = result.documents;
if (documents.isEmpty) {
…
为什么会出现这个错误?
我已经阅读了https://firebase.google.com/docs/firestore/security/rules-query,它说db.collection("stories").where("author", "==", user.uid).get() 是有效的。
【问题讨论】:
-
可能是你没有正确添加依赖?
-
@Abby 感谢您的回复!我添加了正确的
标签: firebase google-cloud-firestore firebase-authentication firebase-security