Я работаю над настройкой правил validaton для структуры данных Firebase, созданной с использованием компилятора Bolt.Трудность настройки правил проверки для базы данных Firebase
я в настоящее время имея заявление Болта ниже:
path /sharedEvents/{share} is Boolean[] {
read() { isMailOfCurrentUser(share) }
create() { isOwnerOfEvent(...) } //NOT YET CORRECT!
delete() { isOwnerOfEvent(prior(...) } //NOT YET CORRECT!
}
С этим, я пытаюсь добиться того, что:
- только пользователей, имеющие почты, соответствующих ключу «долей 'разрешено считывать данные (они используют эту дату для извлечения ключа общих для них событий.
- Только владелец события может добавить/удалить ключ для своего мероприятия в список общих событий.
Этот второй пункт, где я столкнулся с проблемой - я не могу создать правила create/delete, поскольку я понятия не имею, как ссылаться на ключи логических значений в правиле проверки. .
пример данных в Firebase для вышеприведенного утверждения болта:
sharedEvents
ZW5kc3dhc0BldmVyeW1hMWwuYml6
-BDKBEvy-hssDhKqVF5w: true
-FDKBEvy-hsDsgsdsf5w: true
-ADBEvy-hfsdsdKqVF5w: true
aXQnc251bWJlcnNAbWExbDJ1LnVz
-KBEvy-hsDhH6OKqVF5w: true
для уточнения потребностей на этом примере: только пользователь с почтой «ZW5kc3dhc0BldmVyeW1hMWwuYml6» умеет читать три вложенных Чайлдс. Только владелец события '-BDKBEvy-hssDhKqVF5w' должен иметь возможность создавать/удалять это значение. (то же самое для других ключей события/boolean).
Мой вопрос: будет ли эта настройка работать (и как настроить правила создания/удаления)? Или это не сработает, и я должен переосмыслить/структурировать данные?
Любая помощь приветствуется!
----------------- Выходной JSON FILE -------------------------- ----------------
вопрос выше был дан ответ, данный раздел показывает результирующую JSON
"sharedEvents": {
"$share": {
".read": "<removed for readability>",
"$event": {
".validate": "newData.isBoolean()",
".write": "<removed for readability>"
}
}
},
еще раз спасибо за быстрый поддержку!
Эй, Питер, я еще не понял вашу структуру данных. Я думаю, что у вас есть узел верхнего уровня, где живут реальные данные. Если да, можете ли вы добавить фрагмент этого JSON? –
Я также думаю, что у вас будет некоторый узел, который отображает из 'auth.uid' значения, которые вы называете« mail ». Пожалуйста, добавьте это тоже. –