如何在Flatter中使用Firebase Auth和Firestore
我有一个基于和的颤振应用程序,我通过身份验证firebase添加用户(蓝色按钮),并在代码中保留ID,以便该用户是管理员,普通用户可以通过应用程序(电子邮件和密码)创建帐户,我想要的是确保管理员是唯一可以从数据库中删除数据的人,而其他用户只允许读写,所以我这样做了: 我将云Firestore项目中的角色更改为:如何在Flatter中使用Firebase Auth和Firestore,firebase,flutter,dart,google-cloud-firestore,firebase-authentication,Firebase,Flutter,Dart,Google Cloud Firestore,Firebase Authentication,我有一个基于和的颤振应用程序,我通过身份验证firebase添加用户(蓝色按钮),并在代码中保留ID,以便该用户是管理员,普通用户可以通过应用程序(电子邮件和密码)创建帐户,我想要的是确保管理员是唯一可以从数据库中删除数据的人,而其他用户只允许读写,所以我这样做了: 我将云Firestore项目中的角色更改为: rules_version = '2'; service cloud.firestore { match /databases/{database}/documents {
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
规则,则该规则允许创建、更新和删除操作允许读、写:if request.auth!=null
允许任何经过身份验证的用户创建、更新和删除数据库中的任何文档
如果您只希望允许任何经过身份验证的用户创建或更新文档,但只希望具有该特定UID的用户删除文档,则必须显式命名这些操作:
allow read, create, update: if request.auth != null;
allow delete: if request.auth.uid == 'psqxVzX6BvYCuWbajhcEK1QGZOo1';
有关完整信息,请参阅上的文档。无需将id作为请求的一部分发送到Firestore。它由Firestore插件自动处理。您可以通过创建一个新帐户并尝试删除文档来检查这一点。我创建了一个新用户,可以删除文档,这与rollsThats相反,因为您的规则是错误的。抱歉,我没有注意到您是如何编写规则的,但是如果请求为空,您允许读写。默认情况下,“写入”表示创建、更新和删除。您可以测试您的规则在他们的sandboxI中是否有效我感谢您的努力,谢谢,但是有(创建、更新),我是Firebase的新手请将您的规则图片替换为实际规则文本。一般情况:不要发布文本图片。谢谢,我已尝试从用户帐户中删除文档,但失败