Вот структура моей базы данных в реальном времени.
В Flutter (ios) я пытаюсь создать ссылку с кодом ниже:
final tempRef = FirebaseDatabase.instance.reference().child("temp_hum");
Затем я следую общий протокол для прослушивания изменений в базе данных с кодом ниже, и я не могу получить событие, чтобы оператор print в _onIncomingEvent работал
class _TemperatureProgressState extends State<TemperatureProgress> {
List<Temperature> tempList;
StreamSubscription<Event> _onTempSubscription;
_onIncomingTemp(Event event) {
print('event: ' + event.snapshot.toString());
}
@override
void initState() {
super.initState();
tempList = new List();
_onTempSubscription = tempRef.onChildAdded.listen(_onIncomingTemp);
print('sup');
}
}
Есть идеи? Я думаю, что одним из следующих является ошибка: - что мой код может быть неправильным - я не создаю свою ссылку на firebase должным образом с child ('temp_hum') - Возможно, я даже не подключен к нужной базе данных?
ОБНОВЛЕНИЕ 1: - Я обнаружил, что указывал на неверный URL базы данных в моем файле GoogleService-Info.splist
. Все еще не могу получить входящие данные, хотя
ОБНОВЛЕНИЕ 2: - Теперь я могу получать данные, прослушивая .then()
. Тем не менее, я получаю данные только один раз, есть ли способ продолжать слушать?
tempRef.once().then((DataSnapshot snapshot){
print('data: ${snapshot.value}');
});