es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo seleccionar campos específicos utilizando la API modular de Firestore?

En la API de Firebase V8 de Firestore, podía consultar un conjunto de documentos y extraer un subconjunto de campos con código como el siguiente:

const membersRef = db.collection('members');
const snapshot = await membersRef.select('First', 'Last').get();

Con la nueva API modular, puedo hacer lo siguiente:

import { collection } from 'firebase/firestore';
const membersRef = collection(db, 'members');
// ¿Cómo seleccionar solo First y Last de members?

No puedo encontrar una función select() para especificar campos en la nueva API. ¿Cómo se puede hacer esto utilizando la API modular V9?

Sé que puedo leer toda la colección y usar .map()/.forEach para reducir los campos, pero tengo algunos campos grandes que preferiría no consultar a menos que los necesite para un documento específico. El uso de select para que el servidor extraiga solo los campos necesarios es útil.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    En la API modular V9 de Firestore, la función select() ya no está disponible para extraer un subconjunto de campos. En su lugar, se puede utilizar la función query() para crear una consulta que recupere solo los campos deseados.

    Aquí hay un ejemplo de cómo recuperar solo los campos “First” y “Last” de la colección “members” utilizando la API modular V9:

    import { collection, query, where } from 'firebase/firestore';
    const membersRef = collection(db, 'members');
    
    const fieldSelection = query(membersRef, where('__name__', '==', 'document-id'), 
                                select('First', 'Last'));
    
    const snapshot = await getDocs(fieldSelection);
    

    En este código, primero creamos un objeto de consulta llamado fieldSelection utilizando la función query(). Agregamos una cláusula where() para especificar que queremos solo los campos de un documento específico con el ID ‘document-id’. Por último, utilizamos la función select() para especificar los campos que queremos recuperar. Ten en cuenta que el campo ‘name‘ se utiliza para hacer referencia al ID del documento en la cláusula where().

    Por último, utilizamos la función getDocs() para ejecutar la consulta y recuperar el subconjunto de campos deseados para el documento especificado.

Comments are closed.