Как я могу написать свои правила безопасности Firebase, если мне нужны незарегистрированные пользователи, чтобы иметь возможность читать и писать? - PullRequest
0 голосов
/ 24 октября 2018

Я новичок в Firebase, и у меня проблемы с правилами безопасности.Я недавно взял на себя проект, и текущие правила:

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

Это явно не безопасно.Приложение позволяет пользователям (вошедшим в систему) вводить телефонный номер клиента, и оно использует Twilio для отправки этим клиентам текста с просьбой просмотреть продукт пользователя.Клиентам не нужно входить в систему - они могут просто щелкнуть ссылку в Twilio, ввести свой звездный рейтинг и получить возможность перейти на другие сайты отзывов.

В БД Firebase клиент (и рецензия, которую он вводит) является дочерним элементом пользователя, который их ввел.Основываясь на документах, я не думаю, что смогу установить правило, согласно которому пользователи должны проходить аутентификацию, поскольку это будет применяться и ко всем дочерним элементам (клиентам).

Нужно ли добавлять анонимную аутентификацию в мое приложение, чтобы создать анонимный идентификатор пользователя для каждого клиента?Есть ли более простой способ защитить его?

Вот пример экспорта Json из Firebase:

{
      "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
        }
      }
    },
...