Реагировать на собственную базу данных 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))