typescript - Firestore actualizar valor en mapa de mapas
Intento agregar valores a un mapa de mapas usando funciones en la nube y Firestore. Los mapas podrían no existir y no puede haber una entrada con la clave personID.
En este momento estoy logrando esto con el siguiente código:
if (!userData!.requests){
userData["requests"] = {};
}
if (!userData!.requests.outgoing){
userData!.requests["outgoing"] = {};
}
userData!.requests.outgoing[`${personID}`] = data;
t.update(usersRef, userData!);
¿Hay una manera más fácil de hacer esto? ¿Y hay una manera sin necesidad de leer los datos primero?
Respuesta #1
Si solo tienes mapas, deberías poder usar la notación de puntos para escribir/actualizar un campo anidado:
usersRef.update({
["requests.outgoing."+personID]: data
})
Si tienes un array en alguna parte del camino hacia los datos, esto no funcionará. Solo puedes agregar o eliminar elementos en un array sin leerlos; actualizar cualquier elemento existente del array requiere un ciclo de leer-actualizar-escribir.
