Tenemos un realtimedb en firebase que tiene datos de la siguiente manera:
En nuestra página nuxt tenemos el siguiente método:
async getDb () { const messageRef = this.$firebase.database.ref('test') try { const snapshot = await messageRef.once('value') alert(snapshot.val().message) } catch (e) { alert(e) } },
Eso es ejecutado por esto en montado así:
mounted () { this.getDb() },
Sigo recibiendo este error:
No capturado (en promesa) TypeError: no se pueden leer las propiedades de undefined (leyendo 'base de datos')
¿Estoy haciendo algo mal? Tengo toda la configuración de firebase en Nuxt.config.js y suth funciona bien. También agregué realtimedb a los servicios:
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' } },
¿Cómo accede realmente a los datos de realtimedb para que pueda mostrar la matriz de prueba en mi página?
Está utilizando $firebase
que no está incluido en esta documentación . Para otorgar acceso a su base de datos en tiempo real, use lo siguiente:
$fire.database
o
$fireModule.database
Nota:
Si está utilizando la versión 6 de
nuxt/firebase
, userealtimeDb
y la base dedatabase
para la versión 7 en los servicios de nuxt.config.js , consulte este enlace para obtener más detalles.