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).
Vamos aos passos:
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 ---
match /Users/{userId} {
// 1. Leitura: Permitida para todos (público).
allow read: if true;
// 2. Criação e Atualização: Permitida apenas para usuários autenticados.
allow create, update: if request.auth != null;
// 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 usuários autenticados.
allow create, update: if request.auth != null;
// 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;
}
}
}
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 usuários autenticados.
Deleção: Não é permitida 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.