Firebase: как ссылаться на путь в Firebase с помощью переменной

#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 .