【发布时间】:2023-03-13 12:37:01
【问题描述】:
我的数据库结构是:
users
david@gmail.com
records
ApK2DFpG87NDGYutgAVO
pulse: 80
Bryd87NAS20dfDGYtghg
pulse: 78
eva@fb.com
records
A81hxASDKH38dhaj9321
pulse: 93
A82ndasklih38ASD2eda
pulse: 67
规则如下:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{email} {
allow create, read, update, delete: if request.auth.token.email == email;
}
}
}
我希望每个用户(例如foo@gmail.com)能够仅在该用户(users/foo@gmail.com/**)下读写数据。
当我在规则操场上阅读 users/me@gmail.com 时(同时被验证为 me@gmail.com),我得到“允许模拟读取”,正如预期的那样。
但是,当我从我的应用程序中读取users/me@gmail.com/records(同时被验证为me@gmail.com)时,我得到:
FirebaseError:权限缺失或不足。
我错过了什么?
顺便问一下,为什么规则游乐场不允许阅读集合(例如users/me@gmail.com/records)?它说:
路径必须是文档级的
【问题讨论】:
标签: firebase google-cloud-firestore firebase-authentication firebase-security