Как исправить правила безопасности для newData в функции set - PullRequest
0 голосов
/ 06 июля 2019

Я работаю над ионным приложением, я хотел бы отправить данные в мою базу данных реального времени firebase в качестве объекта и сравнить данные с чем-то, однако на стороне сервера, которая является моими правилами безопасности для newData, похоже, что правило записи быть неверным.

Это мой код отправки

var firebaseRef = this.afd.database.ref();
firebaseRef.child('Download/01/1').set({password:2431,name:'john'});

мой узел базы данных должен быть написан здесь

Download: {
  01 : {
      1: { // the data will be written here

      }
  }
}

и это мои правила безопасности

"Download": {    
   "$id": { 
      ".write": "newData.child('password').val() === 4321"
   }
}

Как вы можете видеть, я специально написал пароль в моей функции set '2431', чтобы быть неверным во время проверки правил записи, однако правило записи все еще продолжается при записи в базу данных, даже если пароль его Получено неправильно, можете ли вы посоветовать, что следует исправить в моем коде? Спасибо

1 Ответ

1 голос
/ 06 июля 2019

Ваши правила и запрос не совпадают. Вы пишете в «Download / 01/1», а пароль установлен в «Download / 01/1 / password». Однако ваши правила установлены на «Download / XX», а newData.child('password') относится к «Download / XX / password» (обратите внимание, что в пути отсутствует «1»). Возможно, вы имели в виду что-то вроде:

"Download": {    
   "$id": {
      "$i": {
        ".write": "newData.child('password').val() === 4321"
      }
   }
}

Или, может быть:

"Download": {    
   "$id": { 
      ".write": "newData.child('1').child('password').val() === 4321"
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...