Я храню набор данных бездомных / аварийных приютов в пожарной базе.Все данные должны быть прочитаны: true, и write: false, за исключением свойства OCCUPANCY, которое я хотел бы написать: true.Я пробовал несколько вещей, основанных на других сообщениях переполнения стека (включая: это сообщение, использующее $ other ), но я не смог заставить его работать.Я надеялся, что следующий код будет работать, любые предложения будут с благодарностью.
{
"rules": {
".read": true,
"locations": {
"$location": {
OCCUPANCY": {
".read": true,
".write": true
},
$other": {
".read": true,
".write": false
}
}
}
}
}
Я запустил это в симуляторе Firebase и онКажется, работает как требуется, однако на веб-сайте это утешает Uncaught (in promise) Error: PERMISSION_DENIED: Permission denied
ПРОБЛЕМА: Код, отправляющий обновление в firebase, также обновлял двадругие параметры.Если часть обновления не разрешает записывать, все это завершается неудачей.
РЕШЕНИЕ: Обновите правила firebase, чтобы разрешить запись для этих параметров, удалите избыточные операторы чтения из вложенных параметров (как предложено ниже).
{
"rules": {
".read": true,
"locations": {
"$location": {
"OCCUPANCY": {
".write": true
},
"time": {
".write": true
},
"updated": {
".write": true
},
"$other": {
".write": false
}
}
}
}
}