Codelab do Firebase para Android: crie o Friendly Chat

1. Visão geral

captura de tela

Imagem: app de chat Friendly Chat funcionando.

Este é o codelab do Friendly Chat. Neste codelab, você vai aprender a usar a plataforma Firebase para criar um app de chat no Android.

O que você vai aprender

  • Como usar o Firebase Authentication para permitir que os usuários façam login.
  • Como sincronizar dados usando o Firebase Realtime Database.
  • Como armazenar arquivos binários no Cloud Storage para Firebase.
  • Como usar o Pacote de emuladores locais do Firebase para desenvolver um app Android com o Firebase.

Pré-requisitos

  • A versão mais recente do Android Studio.
  • Um Android Emulator com Android 5.0 ou versões mais recentes.
  • Node.js versão 10 ou mais recente (para usar o Pacote de emuladores).
  • Java 8 ou mais recente. Para instalar o Java, siga estas instruções. Para verificar sua versão, execute java -version.
  • Familiaridade com a linguagem de programação Kotlin.

2. Acessar o exemplo de código

Clonar o repositório

Clone o repositório do GitHub na linha de comando:

$ git clone https://github.com/firebase/codelab-friendlychat-android

Importar para o Android Studio

No Android Studio, selecione File > Open e escolha o diretório build-android-start ( android_studio_folder) no diretório em que você baixou o exemplo de código.

O projeto build-android-start agora deve estar aberto no Android Studio. Não se preocupe se você receber um aviso sobre um arquivo google-services.json ausente. Ele será adicionado em uma etapa posterior.

Verificar dependências

Neste codelab, todas as dependências necessárias já foram adicionadas para você, mas é importante entender como adicionar o SDK do Firebase ao seu app:

build.gradle.kts

plugins {
    id("com.android.application") version "8.0.0" apply false
    id("com.android.library") version "8.0.0" apply false
    id("org.jetbrains.kotlin.android") version "1.8.20" apply false

    // The google-services plugin is required to parse the google-services.json file
    id("com.google.gms.google-services") version "4.3.15" apply false
}

app/build.gradle.kts

plugins {
    id("com.android.application")
    id("kotlin-android")
    id("com.google.gms.google-services")
}

android {
    // ...
}

dependencies {
    // ...

    // Google Sign In SDK
    implementation("com.google.android.gms:play-services-auth:20.5.0")

    // Firebase SDK
    implementation(platform("com.google.firebase:firebase-bom:32.0.0"))
    implementation("com.google.firebase:firebase-database-ktx")
    implementation("com.google.firebase:firebase-storage-ktx")
    implementation("com.google.firebase:firebase-auth-ktx")

    // Firebase UI Library
    implementation("com.firebaseui:firebase-ui-auth:8.0.2")
    implementation("com.firebaseui:firebase-ui-database:8.0.2")
}

3. Instalar a CLI do Firebase

Neste codelab, você vai usar o Pacote de emuladores do Firebase para emular localmente o Firebase Auth, o Realtime Database e o Cloud Storage. Isso oferece um ambiente de desenvolvimento local seguro, rápido e sem custos para criar seu app.

Instalar a CLI do Firebase

Primeiro, instale a CLI do Firebase. Se você estiver usando macOS ou Linux, execute o seguinte comando cURL:

curl -sL https://firebase.tools | bash

Se você estiver usando o Windows, leia as instruções de instalação para receber um binário independente ou instalar via npm.

Depois de instalar a CLI, execute firebase --version. Isso vai mostrar uma versão 9.0.0 ou mais recente:

$ firebase --version
9.0.0

Fazer login

Execute firebase login para conectar a CLI à sua Conta do Google. Uma nova janela do navegador será aberta para concluir o processo de login. Escolha a mesma conta usada para criar o projeto do Firebase.

4. Conectar-se ao Pacote de emuladores do Firebase

Iniciar os emuladores

No terminal, execute o seguinte comando na raiz do diretório codelab-friendlychat-android local:

firebase emulators:start --project=demo-friendlychat-android

Você vai ver alguns registros como este. Os valores de porta foram definidos no arquivo firebase.json, que foi incluído no exemplo de código clonado.

$ firebase emulators:start --project=demo-friendlychat-android
i  emulators: Starting emulators: auth, database, storage
i  emulators: Detected demo project ID "demo-friendlychat-android", emulated services will use a demo configuration and attempts to access non-emulated services for this project will fail.
i  database: Database Emulator logging to database-debug.log
i  ui: Emulator UI logging to ui-debug.log

┌─────────────────────────────────────────────────────────────┐
│   All emulators ready! It is now safe to connect your app. │
│ i  View Emulator UI at http://localhost:4000                │
└─────────────────────────────────────────────────────────────┘

┌────────────────┬────────────────┬────────────────────────────────┐
│ Emulator        Host:Port       View in Emulator UI            │
├────────────────┼────────────────┼────────────────────────────────┤
│ Authentication  localhost:9099  http://localhost:4000/auth     │
├────────────────┼────────────────┼────────────────────────────────┤
│ Database