Tengo una serie de cadenas y quiero verificar cuál de todos esos documentos existen en mi Firestore de dos maneras:
Estoy usando el SDK de administración de nodos:
import Server from '../../../../firebase/firebase_server_exports'; export const databaseEntryExists = async (paths: string[]): Promise<string> => { const promises = paths.map( (element) => new Promise((resolve) => { Server.db .doc(element) .get() .then((doc) => resolve(doc.exists ? element : '')); }) ); const results = await Promise.all(promises); return results.includes(true) ? paths[results.indexOf(true)] : ''; };Aunque este método funciona bien, si tengo 100 rutas, haré 100 llamadas a la API, lo que no me parece un buen negocio. ¿Alguien puede sugerir alguna función de utilidad de Fierstore o algo así como la obtención de documentos por lotes para reducir esto a una llamada API?
En el SDK de Node.js, puede crear objetos DocumentReference para todos los ID y luego usar getAll() para obtenerlos todos de una sola vez. Consulte la documentación de getAll() para ver un ejemplo .
Sin embargo, esta llamada no existe en los SDK del lado del cliente, por lo que lo más cerca que puede llegar es combinar hasta 10 ID en una sola llamada consultando FieldPath.documentId() y usando el operador in . No hay nada que pedir