Como usar o Cloud Firestore no modo Datastore

O Firestore é um banco de dados de documentos NoSQL criado para oferecer escalonamento automático, alto desempenho e facilidade no desenvolvimento de aplicativos. O Firestore é a mais nova versão do Datastore e apresenta várias melhorias em relação a ele.

Como o Firestore no modo Datastore é otimizado para casos de uso do servidor e para o App Engine, recomendamos usar o Firestore no modo Datastore para bancos de dados que serão usados principalmente por aplicativos do App Engine. O Firestore no modo nativo é mais útil para casos de uso de notificações móveis e em tempo real. Para mais informações sobre os modos do Firestore, consulte Como escolher entre o modo nativo e o modo Datastore.

Como usar o modo Datastore com o App Engine

Para usar o modo Datastore com o App Engine:

  1. Se ainda não tiver feito isso, crie um banco de dados e escolha o Firestore no modo Datastore.

    É possível usar os bancos de dados do Datastore atuais com aplicativos do App Engine. Esses bancos de dados atuais serão atualizados automaticamente para o Firestore no modo Datastore.

    1. No seu aplicativo, declare o Datastore como uma dependência adicionando google/cloud-datastore ao arquivo composer.json do seu app e executando composer install do diretório do seu app. Saiba mais sobre o composer (em inglês).

    2. Use a biblioteca de cliente do Google Cloud para ler e gravar entidades e consultar dados.

    Como configurar índices

    O modo Datastore usa índices para cada consulta feita pelo aplicativo. Esses índices são atualizados sempre que uma entidade sofre alterações para que os resultados sejam retornados com rapidez quando o aplicativo fizer uma consulta.

    O modo Datastore cria automaticamente índices de propriedade única para o uso com tipos simples de consultas. Para consultas complexas que incluem várias propriedades, você precisará configurar índices compostos no arquivo index.yaml do app.

    O servidor de desenvolvimento do App Engine atualizará o arquivo index.yaml com os índices compostos necessários para executar os testes. Da mesma forma, o emulador do modo Datastore pode gerar índices ao executar testes.

    Também é possível adicionar os índices ao arquivo index.yaml do app manualmente se você não executar testes locais ou se os testes não incluírem consultas complexas.

    Como configurar permissões de banco de dados

    Por padrão, o app tem todas as permissões necessárias para ler e gravar no modo Datastore e nos bancos de dados do Firestore no projeto do Google Cloud.

    Para gerenciar essas permissões, cada aplicativo do App Engine usa uma conta de serviço padrão que concede acesso total de leitura e gravação ao modo Datastore e aos bancos de dados do Firestore no mesmo projeto do aplicativo. É possível alterar as permissões da conta de serviço padrão, mas o aplicativo poderá perder o acesso, a menos que você atribua um papel do IAM com as permissões necessárias.

    Para informações sobre como permitir que outros usuários, aplicativos ou projetos acessem um banco de dados, consulte Como acessar o banco de dados.

    Como usar o emulador do modo Datastore para testes locais

    A Google Cloud CLI inclui um emulador local do modo de produção do modo Datastore. Use o emulador para desenvolver e testar seu aplicativo localmente. Além disso, com o emulador, é possível gerar índices para a instância do modo de produção do Datastore e excluir índices desnecessários.

    Se você usar o servidor de desenvolvimento local do Google App Engine para testar seu aplicativo, é possível garantir que o servidor use o emulador do modo Datastore definindo a sinalização --support_datastore_emulator=true ao iniciar o servidor.

    Se você estiver usando o emulador do modo Datastore, o dev_appserver exibirá:

    ... Using Cloud Datastore Emulator.
    

    Preços, cotas e limites

    O modo Datastore oferece uma cota gratuita com limites diários. As contas pagas oferecem operações ilimitadas de armazenamento, leitura e gravação. Para mais informações, consulte a página Cotas do Datastore.