使用Firestore数据库获取内容来构建应用。
规则是:
service cloud.firestore {
match /databases/{database}/documents {
// Allow public read access, but only content owners can write
match /{document=**} {
allow read: if true
allow write: if request.auth.uid == request.resource.data.author_uid
}
}
}
正如警告所言,我允许将read设置为true
,我理解这是一个问题。
如何使Flutter应用可以读取Firestore数据库的内容,但任何随机用户都不能读取?该应用程序是公共的/免费的...等等,所以我不希望人们必须登录。
我是否给我的应用某种代码并进行检查?还是...?
更新: 我看到有匿名登录名,可以解决此问题,但是那太过分了吗?真的有帮助吗?这样可以防止我的应用程序离线使用吗? ...等
答案 0 :(得分:3)
无法基于它是您的应用程序还是您的代码来保护访问。这根本不是安全性与基于云的服务一起工作的方式。如果您想限制应用程序的合法用户访问,则必须登录这些用户并以某种方式使其合法化。
在这里合法的含义当然取决于您。无论是“他们已登录”(request.auth != null
),还是他们验证了自己的电子邮件地址(以便您可以与他们联系(request.auth.token. email_verified == true
),还是其他众多选项之一,都可以。< / p>
另请参阅:
答案 1 :(得分:0)
在数据库的“规则”部分中,尝试对它们进行编码,如果用户已登录,则他将具有访问权限。请关注此link,以了解更多信息。