【问题标题】:How to update security rules for Firestore database?如何更新 Firestore 数据库的安全规则?
【发布时间】:2021-07-12 08:22:33
【问题描述】:

我刚收到一封来自 firebase 的电子邮件:

电子邮件标题:[Firebase] 对您的实时数据库 connectsocialmediaapp-default-rtdb 的客户端访问权限将在 5 天后到期电子邮件说明:您选择在测试模式下开始开发,这会使您的实时数据库实例完全开放给互联网。由于此选择使您的应用容易受到攻击者的攻击,因此您的数据库安全规则配置为在前 30 天后停止允许请求。 5 天后,所有客户端对您的实时数据库实例的请求都将被拒绝。在此之前,请更新您的安全规则,以允许您的应用程序正常运行,同时适当保护您的数据。每天运行分析;如果您在过去 24 小时内修改了规则,则这些更改可能不会被考虑在内。如何更新我的数据库安全规则,以便客户端对我的实时数据库的访问不会过期...??

我当前的安全规则是

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if
          request.time < timestamp.date(2021, 4, 22);
    }
  }
}

当前的安全规则

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

【问题讨论】:

  • 您能否分享一个您的数据库示例并演示用户应该阅读的路径。 Firebase 不支持公共或开放式数据库,需要进行某种过滤
  • 您的问题解决了吗?如果您有进一步的疑问,请告诉我们。如果满意,您可以将答案标记为已检查,以便其他人知道您的查询已得到解决。
  • 我的问题还没有解决......我仍然收到来自 firebase 的电子邮件,说客户端对您的实时数据库的访问即将到期
  • @SaadEbad 您能否更新您问题中的安全规则?目前的规则是什么?
  • @Dharmaraj 我更新了现行规则

标签: firebase android-studio firebase-authentication firebase-security


【解决方案1】:

您可以如下设置规则:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
    }
  }
}

上面的这条规则将只允许经过身份验证的用户访问/将数据写入您的数据库。 请注意,如果您将规则设置为if true;,任何用户都可以访问您的 Firestore 中的所有信息。您可以查看此link,了解一些常见的安全规则及其用户案例。 Here 是 Firestore 安全规则官方文档的链接。

allow read, write: if false;

您可以设置此规则来禁止用户访问数据库。

【讨论】:

  • 设置这些规则后,我的数据库是否会被屏蔽?
  • @SaadEbad 如果您设置为false,那么只有您可以看到数据。如果您将其设置为 true,那么您的所有用户都可以获取数据。
  • 您需要为您的数据库创建适当的规则,如果您在设置 Firebase 规则方面需要深入的帮助,我们建议您在不和谐社区 discord.firebase.me
猜你喜欢
  • 1970-01-01
  • 2020-06-19
  • 2019-01-09
  • 2018-03-27
  • 2019-01-15
  • 2019-06-17
  • 2021-07-14
  • 1970-01-01
相关资源
最近更新 更多