# #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 дайте мне знать, если у вас есть разъяснения по моему ответу, и если вы сочтете мой ответ полезным, вы можете проголосовать или принять мой ответ.