Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

265
Visualizações
NuxtJS y Firebase Web SDK Beta v9: ¿Cómo agregar un oyente en tiempo real a Firestore?

Estoy usando el nuevo Firebase Web SDK v9 (beta 8) con NuxtJS2. Tengo un componente secundario que permite a un usuario editar los datos de su publicación. Esto actualiza un documento en Firestsore con los nuevos cambios de publicación. Sin embargo, mi pregunta es... ¿cómo hago para que mi componente principal obtenga actualizaciones en tiempo real de estos nuevos datos?

Dejame explicar:

Tengo la siguiente estructura de componentes de ejemplo en la aplicación:

 <PostCardDetail> <PostEdit /> </PostCardDetail>

Sección del script PostCardDetail.vue donde estoy haciendo la obtención de datos:

 import { doc, getDoc } from 'firebase/firestore' import { mapGetters } from 'vuex' import { db } from '~/plugins/firebase' export default { name: 'PostCardDetail', data() { return { post: {} } }, async fetch() { const docRef = doc(db, 'posts', this.$route.params.postId) const docSnap = await getDoc(docRef) this.post = docSnap.data() }, mounted () { // I believe I will need to mount the realtime listener here? }, } </script>

La sección del script PostEdit.vue donde estoy editando los datos:

 editPost() { const postRef = doc(db, 'posts', this.post.id) await updateDoc(postRef, { ...editedPost, updatedAt: serverTimestamp() }) console.log('updated!') this.$store.dispatch('edit', false) alert('Post successfully updated!') }

Puedo editar correctamente los datos, pero para ver los últimos cambios, necesito actualizar manualmente el navegador. ¿Cómo puedo obtener una actualización automática en tiempo real con firestore después de que el usuario edite la publicación? ¿Supongo que este oyente estará en la propiedad de gancho montada () de PostCardDetail ?

Mi intento:

 mounted() { // eslint-disable-next-line no-unused-vars const unsub = onSnapshot( doc(db, 'posts', this.$route.params.postId), (snapshot) => { this.post = snapshot.data() } ) }

Esto PARECE funcionar bien, pero se siente un poco torpe. ¿Es esta la forma recomendada de abordar esto con NuxtJS?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

La consulta se ve perfectamente bien y es similar a la mencionada en la documentación .

Supongo que este oyente estará en la propiedad de gancho montada () de PostCardDetail

Idealmente, es posible que desee configurar el oyente una vez que se crea el componente y, en su mayoría, he visto que los oyentes se configuran en created()

 created() { const unsub = onSnapshot( doc(db, 'posts', this.$route.params.postId), (snapshot) => { this.post = snapshot.data() } ) }

Para usar el unsub en otro lugar, puede configurarlo en la propiedad de datos o pasarlo a otros componentes según su caso de uso.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda