O Firebase é uma plataforma de desenvolvimento de aplicativos do Google.
De forma resumida, ele é um conjunto de serviços que funciona como um "backend como serviço" (Backend as a Service - BaaS), permitindo que desenvolvedores criem aplicativos web e mobile mais rápido, pois oferece soluções prontas e escaláveis para:
Banco de dados em tempo real (Firestore e Realtime Database).
Autenticação de usuários (login com e-mail, Google, Facebook, etc.).
Hospedagem (Hosting).
Armazenamento de arquivos (Storage).
Analytics (Análise de uso do app).
E vários outros serviços.
Ele cuida da infraestrutura de backend, para que o desenvolvedor possa se concentrar no código front-end e na experiência do usuário.
Nesse tutorial rápido vamos criar o projeto e um aplicativo Web no Firebase, além de ativar o serviço "Authentication" usando o Google como provedor de autenticação. Também vamos ativar o Cloud Firestore Database, caso você precise de um banco de dados. Em seguida, obtemos as chaves de conexão do aplicativo Firebase e injetamos na página. O processo e o uso da ferramenta é gratuito para pequenos sites (Plano Spark).
Utilizar o Firebase Authentication, por exemplo, com login pelo Google, em aplicativos Web simples oferece várias vantagens significativas, especialmente porque simplifica drasticamente a complexidade do backend.
Para aplicativos onde o foco é o desenvolvimento rápido e a funcionalidade principal, os principais benefícios são:
Infraestrutura Pronta
O Firebase lida com todo o backend de autenticação (armazenamento de credenciais, gestão de sessões, segurança). Isso elimina a necessidade de você construir e manter um servidor dedicado para lidar com logins.
Implementação Rápida
A integração é feita principalmente via SDK do Firebase no código frontend (JavaScript), exigindo poucas linhas de código para ter um sistema de login funcional e com pouquíssima configuração.
Zero Gerenciamento de Senhas
Você não precisa se preocupar em armazenar, criptografar ou proteger senhas, pois o Google e o Firebase cuidam disso. Isso economiza tempo, lihas de código e evita os maiores riscos de segurança.
Padrões Google
O login pelo Google utiliza o protocolo OAuth 2.0 e OpenID Connect, padrões robustos e amplamente testados. Você herda a segurança de ponta da infraestrutura do Google.
Gerenciamento de Tokens
O Firebase gera e gerencia tokens de autenticação JWT seguros para identificar o usuário. Você não precisa criar seu próprio sistema de sessões e cookies seguro.
Sem Servidor Próprio de Autenticação
Ao não ter seu próprio servidor de autenticação, você elimina vetores de ataque comuns, como ataques de força bruta ou vulnerabilidades de banco de dados de senhas.
Login Familiar
Quase todos os usuários têm uma Conta Google e estão acostumados com o fluxo de login social. Isso torna o processo de cadastro e acesso instantâneo ("Zero atrito").
Login com um Clique
Se o usuário já estiver logado na Conta Google em seu navegador, ele pode se autenticar no seu app com apenas um clique, melhorando a retenção e o uso.
Gratuidade Inicial
O Firebase Authentication é gratuito para a maioria dos casos de uso, e só se torna pago quando seu aplicativo atinge um volume muito alto de autenticações.
Escalabilidade Automática
A solução é baseada na infraestrutura do Google Cloud e é dimensionada automaticamente para lidar com milhões de usuários, mesmo que seu app simples se torne um sucesso da noite para o dia. Você não precisa se preocupar com a migração de infraestrutura.
Acesse o https://firebase.com e logue-se com sua conta Google/Gmail;
Clique em "Ir para o console";
Clique em "Criar um novo projeto do Firebase";
Digite um nome para seu projeto e clique em [Continuar];
Sugestão: desative o uso da IA (Gemini) no projeto e clique em [Continuar];
Sugestão: desative o uso do Google Analytics no projeto e clique em [Continuar];
Aguarde a criação do projeto e clique em [Continuar].
Você deve estar no Console do Projeto, se não estiver, acesse a lista de projetos e clique no nome do projeto;
Logo abaixo do nome do projeto, clique em "+ Adicionar app";
Clique no ícone Web (</>) para criar um aplicativo compatível;
Digite um "Apelido" para seu aplicativo;
Sugestão: deixe a opção "Configure também o Firebase Hosting para este app." desmarcada;
Clique em [Registrar app];
Ignore o passo "Adicionar o SDK do Firebase" e clique em [Continuar no console].
O Firebase Authentication é um serviço de authenticação do Firebase que permite o login de usuários na sua aplicação de forma simples e rápida, usando, por exemplo, um provedor de autenticação federado como o Google.
No menu lateral esquerdo, clique em Criação depois em Authentication;
Clique em [Vamos começar];
Na guia "Método de login", na lista "Outros provedores", clique no "Google";
Clique em "Ativar";
Em "E-mail de suporte do projeto", selecione seu endereço de e-mail;
Clique no botão [Salvar].
A ativação do Google como provedor de autenticação é automática. Você pode adicionar outros provedores como Facebook e Microsoft, porém, para cada um, existem passos extras que devem ser seguidos para obtenção das chaves de autenticação. Isso será feito nas páginas de cada provedor e costuma estar bem documentado nas instruções do Firebase.
O Firebase Firestore é um banco de dados NoSQL rápido que usa uma API JavaScript simples para acesso pelo nosso aplicativo Web. Se você NÃO pretente usar esse serviço, não é necessário ativá-lo.
No menu lateral esquerdo do console do projeto, clique em Criação depois em Firestore Database;
Clique em [Criar banco de dados];
Mantenha "Edição Standard" marcada e clique em [Avançar];
Deixe tudo como está e clique em [Avançar];
Marque "Iniciar no modo de teste", clique em [Criar] e aguarde a criação do recurso.
Observe que as "regras de segurança padrão para o modo de teste" permitem que qualquer pessoa com a referência do seu banco de dados acesse, edite e exclua todos os dados nos próximos 30 dias e após isso, o banco será completamente bloqueado. Vamos ajustar as regras para melhorar a segurança:
No console do Firestore, clique na guia "Regras";
Substitua as regras atuais pelas regras abaixo:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// ========================================================================
// --- Regras para a Coleção Users (Alteração Restrita ao Proprietário) ---
// ========================================================================
match /Users/{userId} {
// 1. Leitura: Permitida para todos (público).
allow read: if true;
// 2. Criação e Atualização (UPDATE):
// - Requer autenticação (`request.auth != null`).
// - O ID do documento (`userId`) DEVE ser igual ao UID do usuário logado.
// (`request.auth.uid`).
allow create, update: if request.auth != null && userId == request.auth.uid;
// 3. Deleção: Não é permitida para ninguém.
allow delete: if false;
}
// --- Regras para a Coleção Things ---
match /Things/{thingId} {
// 1. Leitura: Permitida para todos (público).
allow read: if true;
// 2. Criação e Atualização: Permitida apenas para o proprietário autenticado.
allow create, update: if request.auth != null && owner == request.auth.uid;
// 3. Deleção: Não é permitida para ninguém.
allow delete: if false;
}
// ====================================================================
// --- Bloqueio Geral (Boa Prática) ---
// ====================================================================
// Nega acesso de leitura e escrita a todas as outras coleções não definidas acima.
match /{document=**} {
allow read, write: if false;
}
} // match /databases/{database}/documents
} // service cloud.firestore
Essas regras prevêem duas coleções de exemplo: Users e Things.
Conforme documentado nas regras, para cada coleção temos:
Leitura: Permitida para todos (público).
Criação e Atualização: Permitida apenas para o proprietário (owner) autenticado.
Apagar: Não é permitido para ninguém.
Logicamente, você precisará alterar essas regras conforme as coleções que você terá e como elas devem ser acessadas. A documentação sobre isso no Firebase é bastante rica!
Seguindo passos similares aos que temos acima para o "Authentication" e para o "Firestore Database", você pode ativar outros serviços conforme sua necessidade. Observe apenas que o plano gratuito (Plano Spark) não prevê todos os serviços disponíveis.
Mais unma vez, em caso de necessidade, consulte a documentação do Firebase que é muito boa.
Uma vez que temos o projeto, o aplicativo e os serviços do Firebase criados, precisamos integrá-los ao nosso projeto. Isso vai variar bastante de projeto para projeto e de acordo com a plataforma front-end que usaremos. Mas, praticamente todas elas vão exigir a configuração das chaves do Firerase. Para obtê-las, siga os passos:
No Console do projeto, no menu lateral, clique na engrenagem ao lado de "Visão geral do projeto";
Clique em "Configurações do projeto";
Na seção "Seus aplicativos", localize "Configuração do SDK";
Marque a opção "Config".
Agora você pode copiar as chaves de const firebaseConfig ou a constante inteira e colar no local adequado do projeto Web.
Essa etapa é necessária se você está desenvolvendo um aplicativo fullstatk ou uma API REST, por exemplo, quando será necessário conectar o back-end ao Firebase, integrando-o com o front-end.
⚠ ATENÇÃO!!!
Essas chaves NUNCA devem ser publicadas no GitHub.com ou qualquer outro lugar público na Internet.
No Console do projeto, no menu lateral, clique na engrenagem ao lado de "Visão geral do projeto";
Clique em "Configurações do projeto";
Clique na guia "Contas de serviço";
No final da caixa "SDK Admin do Firebase", clique no botão [Gerar nova chave privada];
Após o download das chaves, mova o JSONbaixado para o local correto no seu aplicativo e renomeie se necessário.
Essa útima etapa varia conforme a linguagem e framework de back-end que você vai usar. No Python com Flask, por exemplo, esse arquivo é, normalmente, mantido na raiz do projeto com o nome 'firebase_admin_config.json'.