Estoy tratando de crear una matriz 2D en Firestore, que se puede actualizar mediante la unión de matrices, pero estoy luchando por descubrir cómo hacerlo. Puedo hacerlo en una matriz 1D fácilmente con esto:
db.collection('subjects').doc('exampleDoc').update({ units: firestore.FieldValue.arrayUnion({ "name": "Example Unit", "id": "123456787654323456765" }) });
Lo que produjo algo como esto:
name: 'Example Subject', units: [ { id: '123456787654323456765', name: 'Example Unit' } ]Pero, ¿cómo puedo hacer esto con una matriz 2D con los datos a continuación como un documento de ejemplo?
name: 'Example Subject', units: [ { id: '123456787654323456765', name: 'Example Unit', subunits: [ { id: '234568765434567', name: 'Example Subunit' } ] } ]No podrá hacer esto con un arrayUnion simple. Esto se debe a que Firestore no admite la sintaxis para ubicar un elemento de matriz indexado específico como lo hace con campos anidados con nombre.
Lo que tendrá que hacer es leer el documento, modificar el campo en la memoria para que tenga el aspecto que desea y luego actualizar todo el campo al documento.