только пользователи могут удалять собственные данные в Firebase - PullRequest
0 голосов
/ 13 января 2019

Я хочу редактировать мои правила в базе данных Firebase, я хочу, чтобы только пользователь, которого он может удалить или редактировать данные, принадлежал им, а другие пользователи не могут редактировать или удалять.

моя база данных

enter image description here

Я сделал такие правила, но это то же самое, что любой пользователь может обновить или удалить

{
    "rules": {
        "report": {
             ".read": "auth != null",
                            ".write": "!data.exists() || !newData.exists()"
        }
    }
}

есть решение?

1 Ответ

0 голосов
/ 13 января 2019

Я просто скопирую вставить часть авторизации из официальной документации:

Правила базы данных Firebase включают встроенные переменные и функции которые позволяют ссылаться на другие пути, временные метки на стороне сервера, информация для аутентификации и многое другое. Вот пример правила, которое предоставляет доступ на запись для аутентифицированных пользователей к /users/<uid>/, где идентификатор пользователя, полученный с помощью аутентификации Firebase.

{
  "rules": {
    "users": {
      "$uid": {
        ".write": "$uid === auth.uid"
      }
    }
  }
}

1011 *
*

Когда мы подходим к Вашему вопросу:

1) Таким образом, в вашем документе должно быть поле userId, чтобы связать его с владельцем

2) Вы должны добавить к нему следующее правило:

{
    "rules": {
        "report": {
             ".read": "auth != null",
             ".write": "auth != null && ( (data.exists() && data.userId === auth.uid) || !data.exists() || !newData.exists() )"
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...