🏆 P10: Arena Social: O SuperApp Gamer

Este é o seu BOSS FINAL. Neste projeto, você vai integrar tudo o que aprendeu e adicionar o poder do Firebase. Seu app terá Login Real, Banco de Dados na Nuvem (Firestore) e Notificações Push para avisar sobre batalhas.


🎯 Objetivo do Projeto

Criar uma “Rede Social de Batalhas”. Os jogadores fazem login, postam seus Pokémons mais fortes em um mural público e recebem notificações quando outros jogadores os desafiam.


📖 Dicionário do Projeto

  • Firebase Authentication: Sistema pronto do Google para fazer login com e-mail e senha.

  • Cloud Firestore: Banco de dados em tempo real. Quando um jogador posta algo, a tela de todos os outros atualiza sozinha!

  • Firebase Cloud Messaging (FCM): O serviço que envia as notificações push (avisos no topo da tela).

  • google-services.json: O arquivo de configuração que você baixa do Firebase e coloca dentro da pasta app/ do seu projeto.


🏗️ Passo a Passo (Wizard do Android Studio)

  1. Template: Empty Compose Activity.

  2. Name: AppArenaSocial_SeuNome.

  3. Package Name: br.com.curso.arenasocial.


🎨 Parte 1: O Login Seguro (Auth)

No arquivo MainActivity.kt, o código real do Firebase está comentado para evitar que o app feche sozinho (crash) antes de você configurar o seu próprio projeto no Firebase.

val auth = FirebaseAuth.getInstance()
 
auth.signInWithEmailAndPassword(email, senha)
    .addOnCompleteListener { task ->
        if (task.isSuccessful) {
            println("✅ Bem-vindo à Arena!")
        } else {
            println("❌ Erro no login.")
        }
    }

⚙️ Parte 2: O Mural de Batalhas (Firestore)

val db = FirebaseFirestore.getInstance()
 
// Salvando uma postagem
val postagem = hashMapOf(
    "usuario" to "Ash",
    "mensagem" to "Desafio qualquer um para uma batalha!",
    "pokemon" to "Pikachu"
)
 
db.collection("mural").add(postagem)

🏆 Checklist de Conclusão

Para este projeto funcionar 100%:

  1. Crie um projeto no Firebase Console.
  2. Adicione um app Android com o pacote br.com.curso.arenasocial.
  3. Baixe o arquivo google-services.json e substitua o arquivo falso que está na pasta app/.
  4. Ative o Authentication (E-mail/Senha) e o Firestore Database no console do Firebase.
  5. Descomente o código em MainActivity.kt e teste!

📂 Organização de Pastas

br.com.curso.arenasocial MainActivity.kt (Contém a UI e a lógica do Firebase comentada).


??? Requisitos de Configuração e Solução de Problemas

Se você encontrar erros ao tentar rodar este projeto, verifique os pontos abaixo:

1. Suporte ao AndroidX

O arquivo gradle.properties na raiz do projeto deve conter:

android.useAndroidX=true

android.enableJetifier=true

org.gradle.jvmargs=-Xmx2048m

2. Plugins do Gradle

Certifique-se de que o plugin com.google.gms.google-services está aplicado no build.gradle do módulo app.