Usar o Cloud Firestore no modo Datastore

O Firestore é uma base de dados de documentos NoSQL criada para escala automática, elevado desempenho e facilidade de programação de aplicações. É a versão mais recente do Datastore e introduz várias melhorias em relação ao Datastore.

Uma vez que o Firestore no modo Datastore está otimizado para exemplos de utilização de servidores e para o App Engine, recomendamos que use o Firestore no modo Datastore para bases de dados que vão ser usadas principalmente por apps do App Engine. O Firestore no modo nativo é mais útil para casos de utilização de notificações em tempo real e para dispositivos móveis. Para mais informações sobre os modos do Firestore, consulte o artigo Escolher entre o modo nativo e o modo Datastore.

Usar o modo Datastore com o App Engine

Para usar o modo Datastore com o App Engine:

  1. Se ainda não o fez, crie uma base de dados e escolha o Firestore no modo Datastore.

    Pode usar bases de dados do Datastore existentes com apps do App Engine. Estas bases de dados existentes vão ser atualizadas automaticamente para o Firestore no modo Datastore.

    1. Na sua app, declare o Datastore como uma dependência através do comando go get cloud.google.com/go/datastore. Em alternativa, pode declarar dependências no ficheiro go.mod da sua app. Saiba mais sobre como especificar dependências.

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

    Configurar índices

    O modo Datastore usa índices para cada consulta que a sua aplicação faz. Os índices são atualizados sempre que uma entidade é alterada, pelo que os resultados podem ser devolvidos rapidamente quando a app faz uma consulta.

    O modo Datastore cria automaticamente índices de propriedade única para utilização com tipos simples de consultas. Para consultas complexas que incluem várias propriedades, tem de configurar índices compostos no ficheiro index.yaml da sua app.

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

    Também pode adicionar os índices ao ficheiro index.yaml da sua app manualmente se não executar testes locais ou se os seus testes não incluírem consultas complexas.

    Definir autorizações da base de dados

    Por predefinição, a sua app tem todas as autorizações necessárias para ler e escrever nas bases de dados do modo Datastore e do Firestore no seu projetoGoogle Cloud .

    Para gerir estas autorizações, cada app do App Engine usa uma conta de serviço predefinida que concede acesso total de leitura e escrita ao modo Datastore e às bases de dados do Firestore no mesmo projeto que a app. Pode alterar as autorizações da conta de serviço predefinida, mas a sua app pode perder o acesso, a menos que atribua uma função do IAM com as autorizações necessárias.

    Para obter informações sobre como permitir que outros utilizadores, apps ou projetos acedam a uma base de dados, consulte o artigo Aceder à sua base de dados.

    Usar o emulador do modo Datastore para testes locais

    A CLI do Google Cloud inclui um emulador local do ambiente do modo de produção do modo Datastore. Pode usar o emulador para desenvolver e testar a sua aplicação localmente. Além disso, o emulador pode ajudar a gerar índices para a instância do modo Datastore de produção e a eliminar índices desnecessários.

    Se usar o servidor de desenvolvimento localdo App Engine para testar a sua app, pode garantir que o servidor usa o emulador do modo Datastore definindo a flag --support_datastore_emulator=true quando iniciar o servidor.

    Se estiver a usar o emulador do modo Datastore, o dev_appserver apresenta:

    ... Using Cloud Datastore Emulator.
    

    Preços, quotas e limites

    O modo Datastore oferece uma quota gratuita com limites diários. As contas pagas oferecem armazenamento, leitura e operações de escrita ilimitados. Estão disponíveis mais informações na página Quotas do Datastore.