如果我需要未登录的用户才能读写,该如何编写Firebase安全规则?

时间:2018-10-24 13:53:36

标签: firebase firebase-security firebase-security-rules

我是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
        }
      }
    },

0 个答案:

没有答案