Не удалось обновить правила безопасности Firebase - PullRequest
0 голосов
/ 26 мая 2020

У меня есть база данных, и я получил электронное письмо о том, что мои правила небезопасны. это то, что у меня есть сейчас:

{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
  }
}

Я хотел изменить его на что-то вроде примера на сайте, чтобы пользователь мог читать \ писать только в свою запись, но это не работает. мне отказывают.

что я делаю не так?

как мне узнать, что мой ключ $ uid или $ user_id?

структура базы данных такая:

root
  --uid
    -- all the data

Правила:

{
  "rules": {
      "$uid": {
        ".read": "auth != null && auth.uid == $uid",
        ".write": "auth != null && auth.uid == $uid"
      }

  }
}

образец моих данных:

sample of my data

Playground

1 Ответ

0 голосов
/ 02 июня 2020

Эти правила, которые вы используете на снимке экрана игровой площадки:

{
  "rules": {
      "$uid": {
        ".read": "auth != null && auth.uid == $uid",
        ".write": "auth != null && auth.uid == $uid"
      }

  }
}

В этих правилах $uid является переменной, что означает, что правила под этим узлом применяются к любому узлу верхнего уровня. Эти правила затем вы разрешаете пользователю читать / записывать свои собственные данные, когда путь ($uid) совпадает с их собственным UID.

Но на том же скриншоте игровой площадки вы пытаетесь прочитать /uid, и в этом случае uid - это просто жестко запрограммированное значение. Поскольку auth.uid не является фактическим UID вашего пользователя, чтение / запись запрещены.

С пользователем, которого вы настроили на снимке экрана игровой площадки, вы можете читать / записывать местоположение /c252019c-c9c3-461e-bb79-e8a346862f08 (UID пользователя).

...