Este guia detalha como configurar o Firebase Authentication (GitHub OAuth) e Firestore para o TaskMaster.
- Configuracao do Firebase para TaskMaster
- Sumario
- 1. Criar Projeto Firebase
- 2. Configurar Firebase Authentication
- 3. Criar OAuth App no GitHub
- 4. Vincular GitHub ao Firebase
- 5. Configurar Firestore Database
- 6. Aplicar Regras de Seguranca
- 7. Obter Credenciais do Projeto
- 8. Configurar Variaveis de Ambiente
- 9. Configurar Dominios Autorizados
- 10. Verificacao e Troubleshooting
- Links Uteis
- Checklist Final
-
Acesse o Firebase Console
-
Clique em "Adicionar projeto" (ou "Add project")
-
Digite um nome para o projeto (ex:
taskmaster-app) -
Google Analytics (opcional):
- Pode desabilitar se nao precisar de analytics
- Se habilitar, selecione ou crie uma conta do Google Analytics
-
Clique em "Criar projeto" e aguarde a criacao
-
Apos criado, clique em "Continuar" para acessar o console do projeto
-
No menu lateral do Firebase Console, clique em "Authentication"
-
Clique em "Comecar" (ou "Get started")
-
Na aba "Sign-in method", voce vera uma lista de provedores
-
Localize "GitHub" na lista e clique nele
-
Ative o toggle "Habilitar"
-
Voce vera dois campos:
- Client ID: deixe vazio por enquanto
- Client secret: deixe vazio por enquanto
-
IMPORTANTE: Copie a URL de callback de autorizacao exibida
- Formato:
https://YOUR_PROJECT.firebaseapp.com/__/auth/handler - Guarde esta URL, voce vai precisar no proximo passo
- Formato:
-
NAO clique em Salvar ainda - primeiro precisamos criar o OAuth App no GitHub
-
Acesse o GitHub e va em Settings (clique no seu avatar > Settings)
-
No menu lateral, role ate "Developer settings" (no final)
-
Clique em "OAuth Apps"
-
Clique em "New OAuth App"
-
Preencha os campos:
Campo Valor Application name TaskMaster(ou o nome que preferir)Homepage URL http://localhost:5173(desenvolvimento) ou sua URL de producaoApplication description (opcional) Descricao do app Authorization callback URL Cole a URL copiada do Firebase (passo 2.7) -
Clique em "Register application"
-
Na pagina seguinte, voce vera:
- Client ID: Copie este valor
- Client secrets: Clique em "Generate a new client secret"
-
ATENCAO: O Client Secret so e exibido UMA VEZ. Copie e guarde em local seguro!
-
Volte ao Firebase Console > Authentication > Sign-in method > GitHub
-
Cole as credenciais do GitHub:
- Client ID: Cole o Client ID copiado do GitHub
- Client secret: Cole o Client Secret copiado do GitHub
-
Clique em "Salvar"
-
O provedor GitHub agora deve aparecer como "Ativado" na lista
-
No menu lateral do Firebase Console, clique em "Firestore Database"
-
Clique em "Criar banco de dados" (ou "Create database")
-
Escolha o modo inicial:
- Selecione "Iniciar no modo de producao" (Start in production mode)
- Isso garante que as regras de seguranca estejam ativas desde o inicio
-
Escolha a localizacao do servidor:
- Recomendado para Brasil:
southamerica-east1(Sao Paulo) - Ou escolha a regiao mais proxima dos seus usuarios
- Recomendado para Brasil:
-
Clique em "Criar" (ou "Create")
-
Aguarde a criacao do banco de dados
-
No Firestore Database, clique na aba "Regras" (ou "Rules")
-
Substitua o conteudo existente pelas regras abaixo:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Regra para tasks do usuario
match /users/{userId}/tasks/{taskId} {
// Apenas o proprio usuario pode ler/escrever suas tasks
allow read, write: if request.auth != null
&& request.auth.uid == userId;
}
// Bloquear qualquer outro acesso
match /{document=**} {
allow read, write: if false;
}
}
}-
Clique em "Publicar" (ou "Publish")
-
Aguarde a confirmacao de que as regras foram aplicadas
O que essas regras fazem:
- Usuarios autenticados so podem acessar suas proprias tasks
- O caminho
users/{uid}/tasksgarante isolamento por usuario - Qualquer outro caminho e bloqueado por padrao
-
No Firebase Console, clique no icone de engrenagem (ao lado de "Visao geral do projeto")
-
Selecione "Configuracoes do projeto" (Project settings)
-
Role ate a secao "Seus apps" (Your apps)
-
Se nao houver um Web App, clique no icone "</>" (Web) para adicionar
-
Preencha:
- Apelido do app:
TaskMaster Web - Firebase Hosting: deixe desmarcado (opcional)
- Apelido do app:
-
Clique em "Registrar app"
-
Voce vera o objeto
firebaseConfigcom as credenciais:
const firebaseConfig = {
apiKey: "AIza...",
authDomain: "seu-projeto.firebaseapp.com",
projectId: "seu-projeto",
storageBucket: "seu-projeto.appspot.com",
messagingSenderId: "123456789",
appId: "1:123456789:web:abc123"
};- Copie cada valor para usar no proximo passo
- Na raiz do projeto, copie o arquivo de exemplo:
cp .env.example .env.local- Edite o arquivo
.env.localcom suas credenciais:
VITE_FIREBASE_API_KEY=sua_api_key_aqui
VITE_FIREBASE_AUTH_DOMAIN=seu-projeto.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=seu-projeto
VITE_FIREBASE_STORAGE_BUCKET=seu-projeto.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=seu_sender_id
VITE_FIREBASE_APP_ID=seu_app_id-
IMPORTANTE: O arquivo
.env.localja esta no.gitignoree NAO deve ser commitado -
Reinicie o servidor de desenvolvimento:
pnpm devPara que o login funcione, o dominio precisa estar autorizado no Firebase.
-
Firebase Console > Authentication > Settings (aba "Configuracoes")
-
Role ate "Dominios autorizados" (Authorized domains)
-
Verifique se os seguintes dominios estao na lista:
localhost(para desenvolvimento)seu-projeto.firebaseapp.com
-
Para producao, clique em "Adicionar dominio" e adicione:
- Seu dominio de producao (ex:
taskmaster.seudominio.com)
- Seu dominio de producao (ex:
- Inicie o servidor de desenvolvimento:
pnpm dev - Acesse
http://localhost:5173 - Clique em "Entrar com GitHub"
- Autorize o app no popup do GitHub
- Voce deve ser redirecionado para o app com seu usuario logado
- Causa: Usuario fechou o popup antes de completar o login
- Solucao: Tente novamente e complete o fluxo de autorizacao
- Causa: O dominio nao esta autorizado no Firebase
- Solucao: Adicione o dominio em Authentication > Settings > Authorized domains
- Causa: Email ja esta vinculado a outro metodo de login
- Solucao: Use o metodo de login original ou vincule as contas
- Causa: Regras de seguranca bloqueando acesso
- Solucao:
- Verifique se o usuario esta autenticado
- Confirme que as regras estao corretas
- Verifique se o caminho da colecao esta correto (
users/{uid}/tasks)
- Causa: URL de callback no GitHub nao corresponde ao Firebase
- Solucao:
- Copie a URL exata do Firebase (Authentication > GitHub > Callback URL)
- Atualize no GitHub Developer Settings > OAuth Apps > Seu App
- Causa: Firestore pode nao estar configurado corretamente
- Solucao:
- Verifique se o Firestore foi criado
- Confirme que as regras de seguranca foram publicadas
- Verifique o console do navegador para erros detalhados
Para debugar problemas de autenticacao, abra o console do navegador (F12) e observe:
- Erros de rede na aba Network
- Erros de JavaScript na aba Console
- Detalhes de requisicoes do Firebase
- Firebase Auth Documentation
- GitHub OAuth Apps Documentation
- Firestore Security Rules
- Firebase Console
- GitHub Developer Settings
- Projeto Firebase criado
- Authentication habilitado com provedor GitHub
- OAuth App criado no GitHub
- Client ID e Secret configurados no Firebase
- Firestore Database criado
- Regras de seguranca aplicadas
- Web App registrado no Firebase
- Arquivo
.env.localcriado com credenciais - Dominios autorizados configurados
- Teste de login realizado com sucesso
- Teste de criacao de task realizado com sucesso