Я новичок в Firebase.Я делаю приложение, которое ищет фильмы и сохраняет их в базе данных в реальном времени.Данные для сохранения имеют следующую структуру:
var movieData = {
title: "Frozen",
genre: "Animation"
};
Я сохраняю фильм следующим образом:
database.ref().child("movies").push(movieData);
Это работает нормально.Проблема возникает, если я пытаюсь сохранить его дважды, поэтому в моей базе данных дублируется фильм:
{
"movies" : {
"-LYSENT90rjBj_fIAHpY" : {
"genre" : "Animation",
"title" : "Frozen"
},
"-LYSEPufvX3p3w-yXf4d" : {
"genre" : "Animation",
"title" : "Frozen"
}
}
}
Я пытаюсь создать правило проверки, которое проверяет , если какой-нибудь фильм стакой же заголовок уже существует .Моя последняя попытка такова:
{
"rules": {
".read": true,
".write": true,
"movies": {
"$pushid" : {
".validate": "root.child('movies/' + newData.child('title').val()).val() === null"
}
}
}
}
Мне трудно понять, как он проверяет все фильмы, если pushid
отличается для каждого фильма.Более того, в симуляторе я видел, что могу тестировать только методы read
, set
и update
.
Есть ли какой-нибудь способ добиться этого?Или было бы проще вручную проверить запрос в клиенте непосредственно перед отправкой фильма?