Quiero obtener el valor de una ID de colección de una colección en Cloud Firestore, si existe:
export const getSlugs = async () => { const document = await db .doc(constDocumentRefs.slugs) .collection('<collection_id>') return ; }; pero esto me devuelve la referencia de la colección, puedo verificar si está vacío llamando al método: document.get().empty pero no estoy seguro de cómo obtengo el valor de la colección, en caso de que no esté vacío.
Mi colección se ve así:
{ key1:1 key2:2 }Quiero mantenerlo como devolver el valor real si existe una colección; de lo contrario, devolver -1. Alguien por favor ayuda!
Puedo ver dos formas posibles:
Desde el frente:
Como mencionó Dharmaraj en su comentario, debe buscar los documentos en la colección para ver si la querySnapshot de consulta está vacía o no. Si la instantánea está vacía, la colección no existe. Puede limitar la consulta a un solo documento para minimizar el costo. Para eso usarás el método limit() . Y para verificar si QuerySnapshot contiene un documento, use la propiedad de size .
Desde un back-end:
Los SDK de administración ofrecen un método específico para enumerar colecciones, por ejemplo, listCollections() para el SDK de administración de Node.js (y el método listCollections() de DocumentReference para enumerar subcolecciones). Puede implementar eso en una función de la nube y llamarlo desde su front-end: escribí un artículo sobre este enfoque .