Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

208
Vistas
¿Se vuelven a ejecutar las transacciones de Firestore cuando se elimina el documento que se va a actualizar?

Imagina esta estructura de base de datos:

 /users(collection) userId/ (doc) likes/ (collection) postId1 (doc) postId2 (doc)

Estoy implementando una función para dar me gusta/no me gusta a las publicaciones.

Para eso, estoy ejecutando una transacción en la que get el estado Me gusta (me gusta) usando la transacción, para hacer esto (me gusta) o aquello (no me gusta).

Cuando se realiza una operación Me gusta, necesito agregar la publicación Me gusta a la subcolección Me likes del usuario que le dio Me gusta.

Pero... ¿qué pasa si el documento del usuario (al que le gusta la publicación) se elimina (en la interfaz de usuario tengo una sección para eliminar el perfil del usuario) durante la operación Me gusta?

Si solo hago:

 transaction.create(`users/${userId}/likes/${postId}`, denormalizedPostData);

¿La transacción detectará la eliminación del documento de usuario?

Si no, ¿qué sucede si también elimino los Me gusta/la subcolección del usuario al eliminar su documento?

 deleteUserDoc(userDocRef); deleteFullCollection(userLikesRef, batchSize);

Será el

 transaction.create(`users/${userId}/likes/${postId}`, data);

detectar el "cambio" (la eliminación del documento) y volver a ejecutar la transacción?

Pregunto esto porque sé que debemos asegurarnos de que las lecturas estén situadas antes que las escrituras en el cuerpo de las transacciones, para volver a ejecutar la transacción si los documentos leídos cambian... pero, ¿qué pasa con esta situación?

Tengo miedo de volver a crear el documento del usuario simplemente adjuntando un documento a la colección de Me gusta del usuario mediante la transaction.create() .


¿Debo hacer una lectura adicional en la parte superior de la transacción?

 transaction.get(userRef); // Just to ensure the re-execution
about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

Si lee el documento en el controlador de transacciones y luego escribe una modificación en él en ese mismo controlador, Firestore SDK envía el estado previo a la transacción y el estado posterior a la transacción de ese documento al servidor. Esto permite que el servidor detecte si el documento se modificó durante la transacción, incluso si se eliminó.

about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda