Почему я не могу написать в свою базу данных firebase? - PullRequest
0 голосов
/ 02 июля 2018

Я использую firebase и получаю сообщение об ошибке отказа в разрешении при попытке записи в свою базу данных. Вот что я имею в качестве моих правил:

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

Это код для записи в базу данных:

function writeUserData(userId, name, email, imageUrl) {
  firebase.database().ref('users/' + userId).set({
    username: name,
    email: email,
    profile_picture : imageUrl
  });
} 

Почему я не могу записать в свою базу данных?

1 Ответ

0 голосов
/ 02 июля 2018

В ваших текущих правилах вы разрешаете запись в "foo" узел вашей базы данных, но вы пытаетесь писать в "users". Поскольку вы не установили правило для «пользователей», firebase использует правило по умолчанию, которое является ложным.

Если вы хотите иметь возможность писать пользователям, вам придется изменить свои правила на это:

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

Просто помните, что это позволяет всем (даже не прошедшим проверку подлинности пользователям) читать / писать в это место. Для более безопасного варианта вы можете ограничить его, чтобы пользователи могли только читать / записывать свои собственные данные:

{
  "rules": {
    "users": {
      "$user_id": {
        // grants write access to the owner of this user account
        // whose uid must exactly match the key ($user_id)
        ".write": "$user_id === auth.uid",
        ".read": "$user_id === auth.uid"
      }
    }
  }
}

Пример из Документация Firebase .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...