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

359
Visualizações
Firebase onSnapshot listener: ¿Cómo manejar si el documento aún no existe?

Estoy creando una aplicación en la que los usuarios pueden etiquetar los temas que les interesan.

Estoy buscando las mejores prácticas sobre cómo manejar el siguiente problema:

Tengo una página que monta un oyente onSnapshot durante la creación de la página (ruta de la página de ejemplo: site.com/tags/apple ). Esta página le permite al usuario agregar la etiqueta a su feed. Primero, necesito "observar" si agregan la etiqueta a su feed o verificar si ya existe para poder alternar el estado del ícono de un botón para informarles que ya agregaron esta etiqueta a su feed. .

Pensé que usaría el oyente onSnapshot para manejar esta lógica así (simplificado para esta pregunta):

 mounted() { loadwatchedTag() { const docRef = doc(db, `users/${this.userProfile.uid}/tags`, 'apple') //<-- example tag this.unsubscribe = onSnapshot(docRef, { next: (doc) => console.log('tag', doc.data()), error: (error) => console.log('watchedTag listener error', error) }) } }

El problema es que al cargar la página, aparece el siguiente error en la consola (porque la etiqueta aún no existe):

tag, undefined

Entonces, ¿cómo manejar este problema en la carga de la página si la etiqueta aún no existe? ¿Debería estar haciendo algo como esto dentro del código onSnapshot?

 if (docSnap.exists()) { console.log("tag exists!", docSnap.data()); } else { // doc.data() will be undefined in this case console.log("tag does not exist"); }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

¿Debería estar haciendo algo como esto dentro del código onSnapshot ?

 if (docSnap.exists()) { console.log("tag exists!", docSnap.data()); } else { // doc.data() will be undefined in this case console.log("tag does not exist"); }

Sí, esto es exactamente lo que debes hacer. Y hay una "Nota" dedicada a este caso en el documento para el método getDoc() :

Nota: Si no hay ningún documento en la ubicación a la que hace referencia docRef , el documento resultante estará vacío y la llamada que exists en él devolverá falso.

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