En la documentación de Firestore (y también en otros documentos de Firebase) tienden a establecer una referencia a un elemento (colección o, a veces, documento) en una variable, luego usan esa referencia para crear/actualizar los datos del elemento.
Aquí hay una copia y pegado de los documentos de Firestore con citiesRef como ejemplo.
var citiesRef = db.collection("cities"); citiesRef.doc("SF").set({ name: "San Francisco", state: "CA", country: "USA", capital: false, population: 860000, regions: ["west_coast", "norcal"] }); citiesRef.doc("LA").set({ name: "Los Angeles", state: "CA", country: "USA", capital: false, population: 3900000, regions: ["west_coast", "socal"] }); ¿Existe alguna ventaja técnica para Firestore al configurarlo de esta manera? (Además de guardar la repetición de código del valor de la variable citiesRef ).
Más específicamente, ¿esto guarda múltiples accesos a Firestore o a la colección?
No, esto no guarda ningún resultado de escritura o lectura. La única ventaja debería ser la reutilización y legibilidad del código.
El ejemplo que diste dará como resultado dos aciertos de escritura.
Más específicamente, ¿esto guarda múltiples accesos a Firestore o a la colección?
Se trata de cómo declaras las referencias. Usar db.collection() cada vez en lugar de declarar dicha variable no le cobrará ningún costo adicional.
No se le cobra solo por crear una referencia a una colección o documento. Se le cobra por leer y escribir cuando usa get() o set() respectivamente o cualquier otra operación que realmente lea desde Firestore o escriba datos.