Instalação e configuração no Android

Conectar seu app ao Firebase

Adicione o Firebase ao seu projeto para Android, caso ainda não tenha feito isso.

Criar um banco de dados

  1. Navegue até a seção Realtime Database do Console do Firebase. Aparecerá uma solicitação para selecionar um projeto atual do Firebase. Siga o fluxo de trabalho de criação do banco de dados.

  2. Selecione um modo inicial para suas regras de segurança do Firebase:

    Modo de teste

    Esse modo é ideal para começar a usar as bibliotecas de cliente em dispositivos móveis e na Web, mas ele permite que qualquer pessoa leia e substitua os dados. Após o teste, revise a seção Noções básicas das regras do Firebase Realtime Database.

    Selecione o modo de teste para começar a usar o SDK do Android, iOS ou da Web.

    Modo bloqueado

    Nega todas as leituras e gravações de clientes de dispositivos móveis e Web. Seus servidores de aplicativos autenticados ainda podem acessar seu banco de dados.

  3. Escolha uma região para o banco de dados. Dependendo da escolha da região, o namespace do banco de dados terá o formato <databaseName>.firebaseio.com ou <databaseName>.<region>.firebasedatabase.app. Para mais informações, consulte selecionar locais para seu projeto.

  4. Clique em Concluído.

Quando você ativa o Realtime Database, a API no Cloud API Manager também é ativada.

Adicionar o SDK do Realtime Database ao seu app

Usando a BoM do Firebase para Android, declare a dependência da biblioteca Android do Realtime Database no seu arquivo do Gradle (nível do app) do módulo, que geralmente é app/build.gradle.

Java

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:28.0.1')

    // Declare the dependency for the Realtime Database library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-database'
}

Ao usar a BoM do Firebase para Android, seu app sempre usará versões compatíveis das bibliotecas do Firebase para Android.

(Alternativa) Declare as dependências da biblioteca do Firebase sem usar a BoM.

Se você preferir não usar a BoM do Firebase, especifique cada versão da biblioteca do Firebase na linha de dependência correspondente.

Caso você use várias bibliotecas do Firebase no seu app, recomendamos usar a BoM para gerenciar versões de bibliotecas, o que garante a compatibilidade de todas as versões..

dependencies {
    // Declare the dependency for the Realtime Database library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-database:20.0.0'
}

Kotlin+KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:28.0.1')

    // Declare the dependency for the Realtime Database library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-database-ktx'
}

Ao usar a BoM do Firebase para Android, seu app sempre usará versões compatíveis das bibliotecas do Firebase para Android.

(Alternativa) Declare as dependências da biblioteca do Firebase sem usar a BoM.

Se você preferir não usar a BoM do Firebase, especifique cada versão da biblioteca do Firebase na linha de dependência correspondente.

Caso você use várias bibliotecas do Firebase no seu app, recomendamos usar a BoM para gerenciar versões de bibliotecas, o que garante a compatibilidade de todas as versões..

dependencies {
    // Declare the dependency for the Realtime Database library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-database-ktx:20.0.0'
}

Configurar as regras do Realtime Database

O Realtime Database oferece uma linguagem de regras declarativas para que você defina como os dados devem ser estruturados e indexados e quando eles podem ser lidos e gravados.

Gravar no seu banco de dados

Recupere uma instância do banco de dados usando getInstance() e faça referência ao local onde você quer gravar.

Java

// Write a message to the database
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");

myRef.setValue("Hello, World!");

Kotlin+KTX

// Write a message to the database
val database = Firebase.database
val myRef = database.getReference("message")

myRef.setValue("Hello, World!")

É possível salvar diversos tipos de dados no banco de dados dessa maneira, incluindo objetos Java. Ao salvar um objeto, as respostas de qualquer getter serão salvas como filhos do local.

Ler no seu banco de dados

Para que os dados do app sejam atualizados em tempo real, adicione um ValueEventListener à referência que você acabou de criar.

O método onDataChange() será acionado uma vez quando o listener for anexado, e sempre que houver alteração nos dados, inclusive nos filhos.

Java

// Read from the database
myRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        // This method is called once with the initial value and again
        // whenever data at this location is updated.
        String value = dataSnapshot.getValue(String.class);
        Log.d(TAG, "Value is: " + value);
    }

    @Override
    public void onCancelled(DatabaseError error) {
        // Failed to read value
        Log.w(TAG, "Failed to read value.", error.toException());
    }
});

Kotlin+KTX

// Read from the database
myRef.addValueEventListener(object : ValueEventListener {
    override fun onDataChange(dataSnapshot: DataSnapshot) {
        // This method is called once with the initial value and again
        // whenever data at this location is updated.
        val value = dataSnapshot.getValue<String>()
        Log.d(TAG, "Value is: $value")
    }

    override fun onCancelled(error: DatabaseError) {
        // Failed to read value
        Log.w(TAG, "Failed to read value.", error.toException())
    }
})

Opcional: configurar o ProGuard

Ao usar o Firebase Realtime Database e o ProGuard no seu app, pense em como os objetos do modelo serão serializados e desserializados após a ofuscação. Se você usar DataSnapshot.getValue(Class) ou DatabaseReference.setValue(Object) para ler e gravar dados, será preciso adicionar regras ao arquivo proguard-rules.pro:

    # Add this global rule
    -keepattributes Signature

    # This rule will properly ProGuard all the model classes in
    # the package com.yourcompany.models.
    # Modify this rule to fit the structure of your app.
    -keepclassmembers class com.yourcompany.models.** {
      *;
    }

Para ajuda sobre problemas ou dúvidas relacionadas ao ProGuard, acesse os fóruns da comunidade da Guardsquare (em inglês) para falar com um especialista.

Preparar para lançamento

Antes de lançar o app, recomendamos revisar nossa checklist de lançamento para garantir que o app esteja pronto.

Ative o App Check para garantir que apenas seus apps possam acessar os bancos de dados.

Próximas etapas