Ir para o console

Gerenciar índices no Cloud Firestore

O Cloud Firestore garante o alto desempenho das consultas ao exigir um índice de todas elas. Os índices necessários para as consultas mais básicas são criados automaticamente para você. À medida que você usa e testa o aplicativo, o Cloud Firestore gera mensagens de erro para ajudar na criação de outros índices necessários. Nesta página, você aprende a gerenciar índices de campo único e compostos.

Criar um índice inexistente por meio de uma mensagem de erro

Se você tentar executar uma consulta composta com uma cláusula de intervalo que não esteja mapeada a um índice atual, um erro será retornado. A mensagem desse erro inclui um link direto para você criar o índice inexistente no Console do Firebase.

Abra o link gerado para o Console do Firebase, revise as informações preenchidas automaticamente e clique em Criar.

Usar o Console do Firebase

Para criar um novo índice manualmente no Firebase console:

Imagem da interface de indexação do Firestore no Console do Firebase

  1. Visite a seção Banco de dados do Console do Firebase.
  2. Acesse a guia Índices e clique em Adicionar índice.
  3. Insira o nome da coleção e defina por quais campos você quer ordenar o índice.
  4. Clique em Criar.

Isso pode levar alguns minutos, dependendo do tamanho da consulta. Após a criação, veja os índices e o status na seção "Índices compostos". Se o processo ainda não foi concluído, uma barra de status de criação é exbida no Firebase console.

Remover índices

Para excluir um índice:

  1. Visite a seção Banco de dados do Console do Firebase.
  2. Clique na guia Índices.
  3. Passe o mouse sobre o índice desejado e selecione Excluir no menu de contexto.
  4. Clique em Excluir no alerta para confirmar a ação.

Usar a Firebase CLI

Também é possível implantar índices com a Firebase CLI. Para começar, execute firebase init firestore no diretório do projeto. Durante a configuração, a Firebase CLI gera um arquivo JSON com os índices padrão no formato correto. Edite o arquivo para adicionar mais índices e o implante com o comando firebase deploy. Se você quiser apenas implantar índices, adicione a sinalização --only firestore:indexes. Se você fizer edições nos índices usando o Console do Firebase, atualize também o arquivo de índices local.

Tempo de criação do índice

A criação do índice demora alguns minutos, dependendo de quantos dados precisam ser atualizados. Quanto mais documentos corresponderem aos campos que estão sendo indexados, mais demorada será a criação. Além disso, para cada ID de coleção exclusivo, apenas uma criação de índice pode ser realizada ao mesmo tempo. A conclusão de várias criações de índice no mesmo ID de coleção é em sequência.

Erros na criação do índice

Talvez você encontre erros na criação ao gerenciar índices compostos e isenções de índices de campo único. A indexação pode falhar se o Cloud Firestore encontrar um problema com os dados usados nessa operação. Isso costuma significar que você atingiu um limite de índice. Por exemplo, a operação pode ter atingido o número máximo de entradas de índice por documento.

Se a criação do índice falhar, você verá a mensagem de erro no console. Verifique se você atingiu algum limite de índice. Depois, tente novamente a operação de indexação.