Visão geral do Firestore
O Firestore é um banco de dados flexível e escalonável para desenvolvimento focado em dispositivos móveis, Web e servidores pelo Firebase e o Google Cloud. O Firestore mantém seus dados em sincronia em apps cliente usando listeners em tempo real. Além disso, oferece suporte off-line para dispositivos móveis e Web para que você possa criar apps responsivos que funcionem independentemente da latência da rede ou da conectividade com a Internet. O Firestore também oferece integração perfeita com outros produtos do Firebase e do Google Cloud, incluindo as funções do Cloud Run.
Principais recursos
Flexibilidade | O modelo de dados do Firestore oferece suporte a estruturas de dados flexíveis e hierárquicas. Armazene seus dados em documentos, organizados em coleções. Os documentos podem conter objetos aninhados complexos, além de subcoleções. |
Consultas expressivas | No Firestore, é possível usar consultas para recuperar documentos individuais e específicos ou recuperar todos os documentos em uma coleção que corresponda aos parâmetros da consulta. Suas consultas podem incluir vários filtros em cadeia e combinar filtragem e classificação. Elas também são indexadas por padrão, portanto, o desempenho da consulta é proporcional ao tamanho do conjunto de resultados, e não ao conjunto de dados. |
Projetado para escala | O Firestore oferece replicação automática de dados em várias regiões, consultas com consistência forte, operações atômicas em lote e suporte a transações. |
Atualizações em tempo real | O Firestore usa sincronização para atualizar dados em qualquer dispositivo conectado. No entanto, ele também é projetado para fazer consultas de busca simples e únicas de maneira eficiente. |
Suporte off-line | O Firestore armazena em cache os dados ativamente usados pelo app. Dessa forma, o app pode gravar, ler, detectar e consultar dados, mesmo que o dispositivo esteja off-line. Quando o dispositivo volta a ficar on-line, o Firestore sincroniza todas as mudanças locais de volta ao Firestore. |
Como funciona?
O Firestore é um banco de dados NoSQL hospedado na nuvem disponível em bibliotecas de cliente Node.js, Java, Python, Unity, C++ e Go, além de APIs REST e RPC. Apps da Apple, Android e da Web também podem acessar o banco de dados diretamente usando as bibliotecas de cliente.
Seguindo o modelo de dados NoSQL do Firestore, você armazena dados em documentos que contêm mapeamentos de campos para valores. Esses documentos são armazenados em coleções, que são contêineres de documentos que você pode usar para organizar dados e criar consultas. Os documentos suportam muitos tipos de dados diferentes, desde strings e números simples a objetos complexos e aninhados. Também é possível criar subcoleções dentro dos documentos e criar estruturas de dados hierárquicas que podem ser escalonadas à medida que o banco de dados cresce. O modelo de dados do Firestore oferece suporte a qualquer estrutura de dados que funcione melhor para seu app.
Além disso, as consultas no Firestore são expressivas, eficientes e flexíveis. Crie consultas superficiais para recuperar dados no nível do documento sem precisar recuperar a coleção inteira ou qualquer subcoleção aninhada. Adicione classificação, filtragem e limites às consultas ou cursores para paginar os resultados. Para manter os dados atualizados nos aplicativos sem recuperar todo o banco de dados sempre que ocorrer uma atualização, adicione listeners em tempo real. Com eles, você é notificado com um snapshot de dados em seu app sempre que houver mudanças nos dados que seus apps cliente estão detectando, recuperando somente as novas alterações.
Proteja o acesso aos seus dados no Firestore com Identity and Access Management (IAM) para linguagens do lado do servidor. Para Android, plataformas Apple e JavaScript, proteja seus dados com o Firebase Authentication e as regras de segurança do Firestore.
A seguir
- Comece a usar o Firestore: configure seu banco de dados, adicione dados e comece a fazer a leitura deles.
- Saiba mais sobre o modelo de dados do Firestore.
- Crie e gerencie bancos de dados.