首页 > 解决方案 > 如果我需要非登录用户能够读写,我该如何编写 Firebase 安全规则?

问题描述

我是 Firebase 的新手,我的安全规则有问题。我最近接手了一个项目,目前的规则是:

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

这显然是不安全的。该应用程序允许用户(登录)输入客户电话号码,并使用 Twilio 向这些客户发送文本,要求他们查看用户的产品。客户无需进行任何登录 - 他们只需单击 Twilio 的链接,输入他们的星级评分,即可选择访问其他评论网站。

在 Firebase 数据库中,客户(以及他们输入的评论)是输入他们的用户的子级。根据文档,我认为我不能制定用户必须经过身份验证的规则,因为这也将适用于所有孩子(客户)。

我是否需要将匿名身份验证添加到我的应用程序才能为每个客户创建一个匿名 uid?有没有更简单的方法来保护它?

这是从 Firebase 导出的 Json 示例:

{
      "profiles" : {
        "User1_UID" : {
          "guests" : {
            "guest-id-here" : {
              "createdOn" : "2018-06-28T16:23:53.793Z",
              "firstName" : "",
              "id" : "id-here",
              "lastName" : "",
              "phone" : "",
              "ratingLeft" : true,
              "reviewSite" : true,
              "reviewSiteClicked" : {
                "facebook" : true,
                "google" : true,
                "other" : false,
                "tripadvisor" : true,
                "yelp" : true
              },
              "reviewSiteClickedOn" : "2018-06-28T16:26:46.237Z",
              "reviewedOn" : "2018-06-28T16:25:22.996Z",
              "starRating" : "5"
            },
            "guest2-id-here" : {
              "createdOn" : "2018-07-15T18:57:52.171Z",
              "firstName" : "Joe",
              "id" : "guest2-id",
              "lastName" : "Schmoe",
              "phone" : "+1234567890",
              "ratingLeft" : false,
              "reviewedOn" : "",
              "starRating" : ""
            },
            }
          },
      "User2_UID" : {
      "guests" : {
        "guest-id-here" : {
          "ratingLeft" : true
        }
      }
    },

标签: firebasefirebase-security

解决方案


推荐阅读