#javascript #reactjs #firebase #firebase-realtime-database
#javascript #reactjs #firebase #firebase-база данных реального времени
Вопрос:
Я пытаюсь сослаться на переменную в моей базе данных Firebase в реальном времени, но моя консоль не отображает нужные мне данные. Правильный uid зарегистрирован, однако я не знаю, как ссылаться на переменную с именем serial.
componentDidMount() {
const uid = this.state.user.uid;
console.log(uid);
const serial = db.ref(uid "/serial");
console.log(serial);
Заранее спасибо!
Ответ №1:
Если я правильно понимаю ваш вопрос, вы хотите получить значение uid/serial
узла.
Выполняя это, const serial = db.ref(uid "/serial");
вы определяете Reference
. Вам нужно запросить данные в этом Reference
месте, используя once()
или on()
методы.
Например:
const serialRef = db.ref(uid "/serial");
serialRef.once('value')
.then(function(dataSnapshot) {
console.log(dataSnapshot.val());
});
Обратите внимание, что once()
метод является асинхронным и возвращает обещание, которое разрешается с помощью DataSnapshot
.
Комментарии:
1. Спасибо за ваш ответ! Это устранило проблему.
2. Также взгляните на developer.mozilla.org/en-US/docs/Web/JavaScript/Reference /… .
Ответ №2:
Можете ли вы попробовать это:
componentDidMount() {
const uid = this.state.user.uid;
console.log(uid);
const dbItem = db.ref(uid);
console.log(dbItem.serial);
}
Комментарии:
1. Спасибо за ваш ответ! К сожалению, это не решило проблему. Теперь он регистрирует uid, а затем для второго журнала возвращает undefined .