Правила Firebase, чтобы установить чтение / запись для определенного свойства - PullRequest
0 голосов
/ 23 мая 2018

Я храню набор данных бездомных / аварийных приютов в пожарной базе.Все данные должны быть прочитаны: true, и write: false, за исключением свойства OCCUPANCY, которое я хотел бы написать: true.Я пробовал несколько вещей, основанных на других сообщениях переполнения стека (включая: это сообщение, использующее $ other ), но я не смог заставить его работать.Я надеялся, что следующий код будет работать, любые предложения будут с благодарностью.

{
 "rules": {
     ".read": true,
        "locations": {
            "$location": {
                OCCUPANCY": {
                    ".read": true,
                    ".write": true
                    },
                $other": {
                    ".read": true,
                    ".write": false
                    }
                }
       }
    }
}

enter image description here

Я запустил это в симуляторе Firebase и онКажется, работает как требуется, однако на веб-сайте это утешает Uncaught (in promise) Error: PERMISSION_DENIED: Permission denied

enter image description here

ПРОБЛЕМА: Код, отправляющий обновление в firebase, также обновлял двадругие параметры.Если часть обновления не разрешает записывать, все это завершается неудачей.

РЕШЕНИЕ: Обновите правила firebase, чтобы разрешить запись для этих параметров, удалите избыточные операторы чтения из вложенных параметров (как предложено ниже).

  {
   "rules": {
       ".read": true,
       "locations": {
            "$location": {
                "OCCUPANCY": {
                    ".write": true
                    },
                "time": {
                    ".write": true
                    },
                "updated": {
                    ".write": true
                },     
                    "$other": {
                    ".write": false
                    }
                }
           }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...