如何为使用 Cloud Firestore 的 Flutter 应用设置安全规则?
Posted
技术标签:
【中文标题】如何为使用 Cloud Firestore 的 Flutter 应用设置安全规则?【英文标题】:How to setup security rules for a Flutter app that uses Cloud Firestore? 【发布时间】:2019-05-26 05:32:14 【问题描述】:我正在创建一个 Flutter 移动应用,并希望使用 Cloud Firestore 来存储一些客户端应该访问的数据。到目前为止,没有用户特定的数据,所以我不希望我的用户必须登录应用程序。我需要指定哪些安全规则以允许客户端读取数据,但拒绝公共访问(从应用程序的“外部”)?
这些是我目前设置的安全规则。
service cloud.firestore
match /databases/database/documents
match /document=**
allow write: if false;
allow read: if request.auth.uid != null;
在认证-->登录方式下,我开启了匿名认证。但是我不确定安全规则是否正确以及我需要在客户端中使用什么 Dart 代码来获得所需的行为(客户端不需要指定凭据,但可以保护我的数据不被应用程序外部访问)。
【问题讨论】:
所以你说“所以我不希望我的用户必须登录应用程序”,同时你说“我需要指定哪些安全规则才能允许客户登录” .所以有误会。 抱歉,我编辑了问题。我不希望我的用户手动登录,但我不确定我是否必须在客户端执行某些操作来验证客户端(自动,无需用户注意)。 【参考方案1】:所以我不希望我的用户必须登录应用程序。
但是你验证他们。就算是匿名认证,也是认证。
我需要指定哪些安全规则以允许客户端读取数据但拒绝公共访问(从应用程序的“外部”)?
您已经拥有的确切规则。
但我不确定安全规则是否正确。
规则是正确的。
我在客户端需要什么 Dart 代码来获得所需的行为(客户端不需要指定凭据,但可以保护我的数据不被应用程序外部访问)。
您的代码应该类似于this。
【讨论】:
好的,谢谢,只是澄清一下:这将为每个客户端会话创建一个新的匿名用户,对吗?似乎有点奇怪,但如果这是要走的路…… 单个用户将只有一个“会话”。每个用户都有自己的“会话”。另请参阅我的回答 post。以上是关于如何为使用 Cloud Firestore 的 Flutter 应用设置安全规则?的主要内容,如果未能解决你的问题,请参考以下文章
如何为 Instagram 克隆构建 Cloud Firestore 数据?