firebase - 如何在 Flutter 中使用 Firebase Auth 和 Firestore
问题描述
我有一个基于cloud_firestore和 firebase_auth的颤振应用程序,我通过Authentication firebase添加用户(蓝色按钮),并将ID保留在代码中,以便该用户是管理员,普通用户可以通过应用程序创建帐户(电子邮件和密码) ,我想要的是确保管理员是唯一可以从数据库中删除数据的人,而其余用户只允许读写,所以我这样做了:
我将Cloud Firestore 项目中的角色更改为:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
allow delete : if request.auth.uid == 'psqxVzX6BvYCuWbajhcEK1QGZOo1';
}
}
}
这是真的还是假的,Firebase 如何对uid敏感?
也许我的问题是如何发送带有请求的uid 。firestore
先感谢您
解决方案
- 如果您有
write
规则,则该规则允许创建、更新和删除操作。 - 如果您对同一操作有多个规则,则将它们 OR'ed 在一起。
这意味着您allow read, write: if request.auth != null
允许任何经过身份验证的用户创建、更新和删除数据库中的任何文档。
如果您只想允许任何经过身份验证的用户创建或更新文档,但只希望具有该特定 UID 的用户删除文档,则必须明确命名这些操作:
allow read, create, update: if request.auth != null;
allow delete: if request.auth.uid == 'psqxVzX6BvYCuWbajhcEK1QGZOo1';
有关完整信息,请参阅有关粒度操作的文档。
推荐阅读
- html - 样式化浏览器颜色的字符
- svelte - 无法启动 Svelte
- google-cloud-platform - 健康检查在 https 中失败,但在 http 中没有
- mysql - 如何在不将这些列作为主键或唯一列的情况下对 2 个值的组合执行类似插入忽略的操作?
- visual-studio - 我需要将 VS SSDT 和 VS 放在一个地方,我将它们分开
- java - Kafka Streams API 使用来自流配置的不同消费者引导服务器
- xamarin - 获取新值时未触发我的 BindingContext 事件
- github - git remote -v : url 显示为 ssh 但它应该是 https
- r - R关闭舍入数,二进制分类器
- javascript - 我如何默认隐藏侧边栏?