Criando um Quiz com score mundial com Java e Firebase

Atualizado em: 19/03/2025 Tempo de leitura: 8 minutos Android, Java, Firebase

Neste tutorial completo você vai aprender a integrar o firebase no seu aplicativo android, criando um Quiz funcional com score mundial.

Dica: Assista ao vídeo tutorial abaixo para acompanhar o processo passo a passo.

Pré-requisitos

  • Android Studio 2023 ou superior instalado
  • Conhecimento básico de Java e Android Development
  • Conta no Firebase e Google Cloud Platform para acessar a API

Passo 1: Configurando o Projeto

Comece criando um novo projeto no Android Studio com as seguintes configurações:

build.gradle (Module: app)
                                
                            dependencies {

                                implementation 'com.google.android.gms:play-services-ads:24.0.0'
                                implementation 'com.google.firebase:firebase-ads:23.6.0'
                                implementation 'com.google.firebase:firebase-database:20.3.0'
                                implementation 'androidx.multidex:multidex:2.0.1'
                                implementation 'androidx.drawerlayout:drawerlayout:1.2.0'
                                implementation 'androidx.coordinatorlayout:coordinatorlayout:1.2.0'
                                implementation 'androidx.core:core:1.12.0'
                                implementation 'androidx.appcompat:appcompat:1.6.1'
                                implementation 'androidx.cardview:cardview:1.0.0'
                                implementation 'com.github.traex.rippleeffect:library:1.3'
                                implementation 'com.google.android.material:material:1.9.0'
                                implementation 'com.github.ybq:Android-SpinKit:1.4.0'
                                implementation 'com.github.lzyzsd:circleprogress:1.2.1'
                                implementation 'androidx.legacy:legacy-support-v4:1.0.0'
                                testImplementation 'junit:junit:4.13.2'
                                implementation 'com.google.code.gson:gson:2.10.1'
                                implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.0"
                                implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.6.0"
                                implementation 'com.google.android.gms:play-services-auth:21.3.0'
                                apply plugin: 'com.google.gms.google-services'
                            
                            }
                                
                            

Adicione também a permissão de internet no AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET" />

Passo 2: Implementando a UI

Crie um layout com varios botões (para as categorias de perguntas) organizados em LinearLayout:

activity_main.xml
    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="8dp">



    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <Button
    android:id="@+id/b13"
    android:layout_width="0dp"
    android:layout_height="200dp"
    android:layout_margin="2dp"
    android:layout_weight="1"
    android:background="#4260F2"
    android:foreground="?attr/selectableItemBackground"
    android:drawableTop="@drawable/astro"
    android:paddingTop="25dp"
    android:text="@string/astronomia"
    android:textAllCaps="false"
    android:textColor="#fff"
    android:textSize="18sp"/>

    <Button
    android:id="@+id/b14"
    android:layout_width="0dp"
    android:layout_height="200dp"
    android:layout_margin="2dp"
    android:layout_weight="1"
    android:background="#223E10"
    android:drawableTop="@drawable/futebol"
    android:paddingTop="25dp"
    android:text="@string/futebol"
    android:foreground="?attr/selectableItemBackground"
    android:textAllCaps="false"
    android:textColor="#fff"
    android:textSize="18sp"/>
    </LinearLayout>

    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <Button
    android:id="@+id/b15"
    android:layout_width="0dp"
    android:layout_height="200dp"
    android:layout_margin="2dp"
    android:layout_weight="1"
    android:background="#FF9800"
    android:foreground="?attr/selectableItemBackground"
    android:drawableTop="@drawable/curio"
    android:paddingTop="25dp"
    android:text="@string/curiosidades"
    android:textAllCaps="false"
    android:textColor="#fff"
    android:textSize="18sp"/>

    
    
Pré-visualização do Layout de Botões

Passo 3: Integrando o Firebase

O Firebase oferece diversos serviços úteis para seu aplicativo. Siga estes passos para integrar:

Configuração Inicial
  1. Acesse o Firebase Console
  2. Crie um novo projeto ou selecione um existente
  3. No dashboard do projeto, clique em "Adicionar aplicativo" e selecione Android
  4. Preencha:
    • Nome do pacote (ex: com.exemplo.meuapp)
    • Apelido do aplicativo (opcional)
  5. Baixe o arquivo google-services.json
Configuração no Android Studio

Adicione as dependências necessárias:

// No arquivo build.gradle (Project)
                        buildscript {
                            dependencies {
                                classpath 'com.google.gms:google-services:4.3.15'  // Google Services plugin
                            }
                        }
                        
                        // No arquivo build.gradle (Module:app)
                        plugins {
                            id 'com.android.application'
                            id 'com.google.gms.google-services'  // Adicione esta linha
                        }
                        
                        dependencies {
                            implementation platform('com.google.firebase:firebase-bom:32.2.3')
                            implementation 'com.google.firebase:firebase-analytics-ktx'
                            implementation 'com.google.firebase:firebase-firestore-ktx'  // Se for usar Firestore
                            implementation 'com.google.firebase:firebase-auth-ktx'       // Se for usar Autenticação
                        }

Cole o arquivo google-services.json no diretório app do seu projeto.

Inicialização no Código

No seu Application class (ou na MainActivity):

class MyApp : Application() {
                            override fun onCreate() {
                                super.onCreate()
                                FirebaseApp.initializeApp(this)
                                
                                // Configurações adicionais (opcional)
                                FirebaseFirestore.setLoggingEnabled(true)  // Para debug
                            }
                        }

Não esqueça de declarar no AndroidManifest.xml:

<application
                            android:name=".MyApp"
                            ...>
                            ...
Pronto! Seu aplicativo agora está conectado ao Firebase. Você pode começar a usar os serviços:
  • Firestore: Banco de dados NoSQL em tempo real
  • Authentication: Autenticação de usuários
  • Analytics: Análise de uso do aplicativo
  • Crashlytics: Relatórios de falhas
Dicas importantes:
  • Configure regras de segurança no Firebase Console para proteger seus dados
  • Para ambientes de produção, restrinja o acesso aos seus serviços
  • Considere usar Firebase Remote Config para gerenciar configurações sem atualizar o app

King Quiz

Veja o programa em funcionamento na loja do Google Play!

Ver na Play Store

Cógigo Fonte

O código fonte vai ser disponibilizado no GITHUB, para os assinantes de meu canal no youtube!

Baixar (PDF - 1.2 MB)

Dúvidas ou Comentários?

Tutoriais Relacionados

Consumindo APIs com Retrofit

Integração com APIs REST no Android

Ler Tutorial
Coroutines em Kotlin

Programação assíncrona eficiente

Ler Tutorial
UI com Material Design

Interfaces profissionais

Ler Tutorial