She*_* S. 1 firebase firebase-security google-cloud-firestore
这些规则是说只有登录用户才能实时访问以他们的用户 ID 命名的文档db。我在询问如何在 Firestore 中执行此操作,除了文档名称不是用户 ID,而是用户名(这是电子邮件的第一部分)
当文档名称是 时,我以前见过这样做uid,但我的文档名称是用户的用户名,并且用户名存储为@身份验证电子邮件中的之前的部分。
例如,我有这些用户:
john@gmail.com
jane@gmail.com
我的firestore是:
集合:用户
约翰
简
只有以 as 登录的用户john@gmail.com才能写入 users 中的 john 文档。我不知道如何从auth变量中获取电子邮件。
有没有办法在不将我的文档重命名为用户 ID 的情况下执行此操作?
我发现您可以使用request.auth.token['email']. 我只能使用它来允许任何人阅读,只有未经身份验证的人才能创建,以及更新和删除用户只能更新/删除他们自己的文档(使用电子邮件):
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{email} {
allow read;
}
match /users/{email} {
allow update, delete: if request.auth.token['email'] == email;
allow create: if request.auth.uid != null;
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1333 次 |
| 最近记录: |