Как получить доступ к firebase realtimedb в NUXT js

# #javascript #firebase #firebase-realtime-database #google-cloud-functions #nuxt.js

Вопрос:

У нас есть realtimedb в firebase, который содержит следующие данные:

введите описание изображения здесь

На нашей странице nuxt у нас есть следующий метод:

 async getDb () {
      const messageRef = this.$firebase.database.ref('test')
      try {
        const snapshot = await messageRef.once('value')
        alert(snapshot.val().message)
      } catch (e) {
        alert(e)
      }
    },
 

Это управляется этим в смонтированном виде, как это:

 mounted () {
    this.getDb()
  },
 

Я продолжаю получать эту ошибку:

Не пойманный (в обещании) Ошибка типа: Не удается прочитать свойства неопределенного (чтение «базы данных»)

Я делаю что-то не так? У меня есть вся конфигурация firebase в Nuxt.config.js и сут работает нормально. Я также добавил realtimedb в сервисы:

  services: {
  realtimeDb: true,
  auth: {
    ssr: true,
    // it is recommended to configure either a mutation or action but you can set both
    initialize: {
      onAuthStateChangedMutation: 'ON_AUTH_STATE_CHANGED_MUTATION'
      // onAuthStateChangedAction: 'onAuthStateChangedAction'
    }
  },
 

Как вы на самом деле получаете доступ к данным из realtimedb, чтобы я мог отобразить тестовый массив на своей странице?

Ответ №1:

Вы используете $firebase то, что не включено в эту документацию. Чтобы предоставить доступ к вашей базе данных в реальном времени, используйте следующее:

 $fire.database
 

или

 $fireModule.database
 

Примечание:

Если вы используете nuxt/firebase версию 6, используйте realtimeDb и database для версии 7 в службах nuxt.config.js, смотрите эту ссылку для получения более подробной информации.

Комментарии:

1. @Joaquin684 дайте мне знать, если у вас есть разъяснения по моему ответу, и если вы сочтете мой ответ полезным, вы можете проголосовать или принять мой ответ.