客户对 Cloud Firestore 数据库的访问权限将在 1 天后到期 [重复]
Posted
技术标签:
【中文标题】客户对 Cloud Firestore 数据库的访问权限将在 1 天后到期 [重复]【英文标题】:Client access to your Cloud Firestore database expiring in 1 day(s) [duplicate] 【发布时间】:2021-12-17 17:48:19 【问题描述】:我正在制作一个 android 应用程序,在其中我从 firebase auth 对我的用户进行身份验证,并且只从 firestore 读取数据(直到现在)。
最近我收到一封来自 Firestore 的关于安全规则的电子邮件,我的数据是开放的等等...... 它是这样的:-
您选择在 测试模式 下开始开发,这会使您的 Cloud Firestore 数据库完全开放到 Internet。由于您的应用容易受到攻击者的攻击,因此您的 Firestore 安全规则已配置为在前 30 天后停止允许请求。 在 1 天内,所有客户端对您的 Firestore 数据库的请求都将被拒绝。在此之前,请编写强大的安全规则,让您的应用能够正常运行,同时适当保护您的数据。每天运行分析;如果您在过去 24 小时内修改了规则,则这些更改可能不会被考虑在内。
谁能告诉我如何才能摆脱这种情况,我也想将来将此应用上传到 Playstore。
提前致谢。
【问题讨论】:
【参考方案1】:查看您的 Firebase 控制台中名为“规则”的部分(firestore 部分)。
如果您只从 firestore 读取数据,您可以通过此更改您的规则。它使firestore只读。
rules_version = '2';
service cloud.firestore
match /databases/database/documents
match /document=**
allow read: if true;
allow write: if false;
否则,您可以将写入权限限制为经过身份验证的用户:
rules_version = '2';
service cloud.firestore
match /databases/database/documents
match /document=**
allow read: if true;
allow write: if request.auth != null;
并将不同的规则设置为match
参数:
rules_version = '2';
service cloud.firestore
match /databases/database/documents
match /one_collection_name/document=**
allow read, write: if true;
match /other_collection_name/document=**
allow read: if true;
allow write: if request.auth.token.admin == true;
有多种可能性,如https://firebase.google.com/docs/firestore/security/get-started 中所述。
【讨论】:
我知道这些基本规则,但我的前辈告诉我,如果我只从 firestore 读取数据,那么即使我将规则更新为只读(即允许读取,如果是的),他还提到,如果我希望我的 Firestore 每次都能工作,那么我还必须执行创建和更新操作,否则如果我只从数据库中读取,那么 Firebase 会将我的项目假定为非活动项目并可能关闭客户端访问。这是真的吗?? 对不起@AmanSharma。我不知道,但我从来没有无限期地只读过 Firestore 项目以上是关于客户对 Cloud Firestore 数据库的访问权限将在 1 天后到期 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 Cloud Functions 将文件上传到 Cloud Storage 并使用 Firestore 控制对 Cloud Storage 的访问?
使用 firebase_admin 或 google.cloud.firestore 在 python 中的 Firestore 客户端(作为用户)
如何使用 ReactJs 对 Cloud Firestore 数据进行分页