Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改Firebase云规则_Firebase_Google Cloud Firestore_Firebase Security - Fatal编程技术网

更改Firebase云规则

更改Firebase云规则,firebase,google-cloud-firestore,firebase-security,Firebase,Google Cloud Firestore,Firebase Security,我的Firebase云数据库中有以下规则: rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if true; } } } 我不断收到电子邮件说: 我们检测到您的安全规则存在以下问题: 任何用户都可以读取整个数据库 任何用户都可以写入整个数据库 在我们的

我的Firebase云数据库中有以下规则:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}
我不断收到电子邮件说:

我们检测到您的安全规则存在以下问题:

任何用户都可以读取整个数据库 任何用户都可以写入整个数据库
在我们的主屏幕中,用户只能通过电子邮件+密码或通过短信获得的电话号码+密码进行签名,才能进入应用程序。两者都使用Firebase auth服务。在这种情况下,规则应该是什么?

如果您只想允许对经过身份验证的用户进行访问,您可以按如下方式修改规则:

// Allow read/write access on all documents to any user signed in to the application
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
    }
  }
}
话虽如此,请注意以下两点:

通过执行/{document=**}即使用,将这些规则应用于Firestore数据库的所有集合/文档。最好明确定义每个集合的规则,以便以更细粒度的方式控制对每个集合的访问。这样,您就避免了将来创建新的非公共集合而忘记修改安全规则的错误。 不要忘记,任何拥有Firebase项目的Web API密钥的人都可以创建Firebase项目的帐户,例如,只需调用。换句话说,此规则只允许经过身份验证的用户访问您的数据库,但默认情况下,任何人都可以成为经过身份验证的用户。
在“注册”活动中,它包含一个选项组,用户应选择该选项组中的现有组。组名存储在数据库/groups/中。我猜有了这些规则就不行了?因为它无法获取此信息。很抱歉之前没有提及。哦,事实上,这完全改变了情况!!您需要提供有关如何处理此组集合的更多详细信息。是否要检查用户是否属于某个组?抱歉!不,只是获取所有组,每个用户都可以尝试注册该组,但只有当他拥有由另一个成员添加的该组的权限时,该操作才会起作用。这似乎应该是一个全新的问题。请写一个新问题,详细说明你的确切目标。如果您认为我的当前回答回答了您的原始问题,即如何解决您收到的关于您的规则的提醒电子邮件的问题,您可以接受和/或投票支持我的当前回答。为了编写有效的规则,这些电子邮件必须与规则应允许或拒绝的特定查询配对。如果看不到查询,就无法编写实现所需安全性的规则。请编辑问题,以便更清楚地了解您正在处理的查询。我还建议从文档开始学习规则的工作原理: