我有一个基于cloud_firestore 和firebase_auth的Flutter应用程序,我通过身份验证 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 敏感?也许我的问题是如何通过
firestore
请求发送 uid 。提前谢谢
最佳答案
write
规则,则该规则允许创建,更新和删除操作。 这意味着您的
allow read, write: if request.auth != null
允许任何经过身份验证的用户创建,更新和删除数据库中的任何文档。如果只希望允许任何经过身份验证的用户创建或更新文档,而只希望具有该特定UID的用户删除文档,则必须显式命名这些操作:
allow read, create, update: if request.auth != null;
allow delete: if request.auth.uid == 'psqxVzX6BvYCuWbajhcEK1QGZOo1';
有关完整信息,请参见granular operations上的文档。
关于firebase - 如何在Flutter中将Firebase Auth与Firestore结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63762344/