En Firestore, cuando elimina un documento, puede especificar una condición como {existe: verdadero} para evitar eliminar el documento si no existe.
En un escenario simultáneo, es posible que solo deseemos agregar un documento a una subcolección si existe el documento principal.
Por ejemplo, imagina la siguiente estructura NoSql:
-comment (doc) /likes (subcollection created when the first like is given) -like1 -like2 ...
¿Es posible hacer algo como
likeRef.create(data, { parent_exists: true });
??
¿Es la única forma de manejar esta situación con Transacciones (leyendo el documento principal y arrojando un error cuando .exists() es falso)?
Tengo miedo de este tipo de situaciones porque si la subcolección se crea al mismo tiempo que se elimina el documento contenedor, podría haber "entidades" huérfanas en la base de datos que incluso pueden romper la interfaz de usuario si no está preparada para estos. casos extremos.
Esto no es posible como una sola operación en Firestore.
La única forma de hacer esto es iniciar una transacción , luego get()
el documento principal dentro de la transacción y agregar los documentos a la subcolección si existe el padre.