Administra índices

Cloud Firestore garantiza un alto rendimiento, ya que usa índices en todas las consultas. Los índices necesarios para las consultas más básicas se crean automáticamente. A medida que usas y pruebas tu app, Cloud Firestore genera mensajes de error que te ayudan a crear los índices adicionales necesarios. En esta página, se describe cómo administrar los índices de campo único y compuestos.

Crea un índice faltante a través de un mensaje de error

Si intentas realizar una consulta compuesta con una cláusula de rango que no corresponda a un índice existente, recibirás un error. El mensaje de error incluye un vínculo directo para crear el índice que falta en Firebase console.

Usa el vínculo que se genera para ir a Firebase console, revisa la información que se propagó automáticamente y haz clic en Crear.

Usa Google Cloud Platform Console

Desde Google Cloud Platform Console, puedes administrar las exenciones para la indexación de los campos únicos y los índices compuestos.

Crea un índice compuesto

Para crear manualmente un índice compuesto nuevo desde GCP Console, sigue estos pasos:

  1. Ve a la sección Índices compuestos.

    Ir a la sección Índices compuestos

  2. Haz clic en Crear índice.

  3. Ingresa un ID de colección. Agrega los nombres de los campos que deseas indexar y un modo de índice para cada campo. Haz clic en Guardar índice.

Tu índice nuevo aparecerá en la lista de índices compuestos y Cloud Firestore comenzará a crear tu índice. Cuando termine de crearse, verás una marca de verificación verde junto al índice.

Cómo borrar un índice compuesto

Para borrar un índice compuesto, sigue estos pasos:

  1. Ve a la sección Índices compuestos.

    Ir a la sección Índices compuestos

  2. En la lista de índices compuestos, haz clic en la entrada del índice que quieres borrar. Haz clic en Borrar.

  3. Para confirmar que deseas borrar este índice, haz clic en Borrar índice en la alerta.

Agrega una exención de índice de campo único

Las exenciones de índices de campo único te permiten anular la configuración automática de los índices en campos específicos de una colección. Para agregar exenciones de campo único desde la consola, sigue estos pasos:

  1. Ve a la sección Índices de campo único.

    Ir a la página Índices de campo único

  2. Haz clic en Agregar exención.

  3. Ingresa un ID de colección y una ruta de campo.

  4. Selecciona una configuración de indexación nueva para este campo. Habilita o inhabilita automáticamente los índices ascendentes, descendentes y de campo único de arreglos actualizados para este campo.

  5. Haz clic en Guardar exención.

Borra una exención de índice de campo único

Para borrar una exención de índice de campo único, sigue estos pasos:

  1. En el visualizador de Cloud Firestore, ve a la sección Índices de campo único.

    Ir a la página Índices de campo único

  2. Haz clic en Agregar exención.

  3. Ingresa un ID de colección y una nombre de campo.

  4. En la lista de exenciones de índice de campo único, haz clic en la entrada de la exención que deseas borrar. Haz clic en Borrar.

  5. Para confirmar que deseas borrar esta exención, haz clic en Eliminar exención en la alerta.

Cuando borras una exención de campo único, el subcampo o campo especificado usará la configuración de indexación heredada. Los campos de documentos vuelven a la configuración automática de índice de la base de datos. Los subcampos de un mapa heredan las exenciones de los campos superiores antes de heredar la configuración automática de índice.

Usa Firebase CLI

También puedes implementar índices con Firebase CLI. Para comenzar, ejecuta firebase init firestore en el directorio de tu proyecto. Durante la configuración, Firebase CLI genera un archivo JSON con los índices predeterminados en el formato correcto. Edita el archivo para agregar más índices y, luego, impleméntalo con el comando firebase deploy. Si solo deseas implementar índices, agrega la marca --only firestore:indexes. Si haces modificaciones en los índices con Firebase console, asegúrate de actualizar también tu archivo de índices local.

Tiempo de compilación de los índices

La creación de los índices puede tardar unos minutos y depende de la cantidad de datos que deban actualizarse. Mientras más documentos coincidan con los campos que se indexan, más tiempo tardará la creación de los índices. Además, para cada ID de colección único, solo puedes tener una compilación de índices en curso. Cuando se realizan varias compilaciones de índices con el mismo ID de colección, estas se completan de forma secuencial.

Errores en la compilación de los índices

Es posible que encuentres errores en la compilación de los índices cuando administres índices compuestos y exenciones de índices de campo único. Una operación de indexación puede fallar si Cloud Firestore encuentra un problema en los datos que se están indexando. Por lo general, esto quiere decir que alcanzaste el límite de índices. Por ejemplo, es posible que la operación haya alcanzado la cantidad máxima de entradas permitidas en un índice de un documento.

Si falla la creación de los índices, aparecerá un mensaje de error en la consola. Luego de verificar que no alcanzaste ningún límite de índices, reintenta la operación de índices.