Реагировать на собственную базу данных Firebase на изменение значения, не инициированное

У меня есть собственное приложение реагировать и использовать базу данных Firebase.

Я пытаюсь использовать on или же once функции, чтобы получить элементы из базы данных, но я не знаю, что я делаю неправильно, потому что я не получаю никаких данных.

Это мой код для получения данных из базы данных Firebase:

firebase.database().ref("messages/").once('value', snapshot => {console.log("snapshot value", snapshot)});

Я пробую команду сверху также с on вместо once и тот же результат. console.log никогда не называется.

Когда я добавляю сообщения, все в порядке, и сообщения появляются в консоли Firebase. Для добавления сообщений я делаю так:

firebase.database().ref("messages/").push(message);

Для firebase я использую эту библиотеку: https://rnfirebase.io/

Используются следующие версии: React: 16.6.0-alpha.8af6728 React native: 0.57.4 React native firebase: 5.0.0

0 ответов

Firebase один раз возвращает обещание, поэтому вы должны использовать его после использования value. Код должен быть похож на

 firebase.database().ref('tableNameHere').once('value').then(snapshot => {
      if(snapshot.exists()){
         console.log(snapshot.val());
      }
}).catch(err => console.log(err));

при использовании значения функция будет вызываться при изменении значения, как при операции CRUD

 firebase.database().ref('tableNameHere').on('value', snapshot => {
              if(snapshot.exists()){
                 console.log(snapshot.val());
              }
        },(err) => console.log(err))
Другие вопросы по тегам