Правило базы данных Firebase для предотвращения дублирования - PullRequest
0 голосов
/ 25 октября 2018

У меня есть база данных, которая выглядит следующим образом:

app-name
 ᠁
[-]⋯users
     ᠁
     ᠁⋯⋯ -AOSa09sd8QEK
     ᠁       ᠁ 
     ᠁       ᠁⋯⋯ date: 12/06/05
     ᠁       ᠁ 
     ᠁       ᠁⋯⋯ email: foo@gmail.com
     ᠁
     ᠁⋯⋯ -AOSa3xsd489E
            ᠁ 
            ᠁⋯⋯ date: 12/36/05
            ᠁ 
            ᠁⋯⋯ email: bar@gmail.com

Я хочу избежать дублирования электронных писем, поэтому, если я попытаюсь нажать на элемент {date: 11/06/10, email: bar@gmail.com, он должен быть отклонен и ничего не произойдет вбаза данных.

Мои правила в настоящее время таковы:

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

Как я могу реализовать правило для базы данных Firebase, которое предотвращает дублирование при этом ограничении электронной почты?

1 Ответ

0 голосов
/ 25 октября 2018

Вы не можете написать правило, которое проверяет уникальность, как это.Лучшее, что вы можете сделать, это использовать облачную функцию для запуска записи, которая затем может выполнить запрос, чтобы определить, существует ли сейчас более 1 записи, которые совместно используют добавленные данные.Это означает, что кто-то только что добавил дубликат, и его можно удалить в той же функции.

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