Adicione o Firebase ao seu projeto Android, caso ainda não tenha feito isso.
Criar um banco de dados
Acesse 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.
Selecione um modo inicial para as Firebase Security Rules:
- 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, leia 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 para Android, Apple ou 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.
Escolha um local para o banco de dados.
Dependendo do local, o URL do novo banco de dados terá um dos seguintes formatos:
(para bancos de dados emDATABASE_NAME.firebaseio.com
us-central1
) (para bancos de dados em todos os outros locais)DATABASE_NAME.REGION.firebasedatabase.app
Clique em Concluído.
Quando você ativa o Realtime Database, ele também ativa a API no Gerenciador de APIs do Cloud.
Adicionar o SDK do Realtime Database ao seu app
No arquivo Gradle do módulo (nível do app) (geralmente<project>/<app-module>/build.gradle.kts
ou <project>/<app-module>/build.gradle
), adicione a dependência da biblioteca do Realtime Database para Android. Recomendamos o uso do
Firebase Android BoM
para lidar com o controle de versões da biblioteca.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.6.0")) // Add 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") }
Com o Firebase Android BoM, seu app sempre vai usar versões compatíveis das bibliotecas do Firebase para Android.
(Alternativa) Adicionar dependências das bibliotecas do Firebase sem usar o BoM
Se você preferir não usar o Firebase BoM, especifique cada versão das bibliotecas do Firebase na linha de dependência correspondente.
Se você usa várias bibliotecas do Firebase no app, recomendamos utilizar o BoM para gerenciar as versões delas, porque isso ajuda a garantir a compatibilidade de todas as bibliotecas.
dependencies { // Add 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:21.0.0") }
Configurar o Realtime Database Security Rules
O Realtime Database oferece uma linguagem declarativa de regras para que você defina como os dados devem ser estruturados e indexados e quando 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.
Kotlin+KTX
// Write a message to the database val database = Firebase.database val myRef = database.getReference("message") myRef.setValue("Hello, World!")
Java
// Write a message to the database FirebaseDatabase database = FirebaseDatabase.getInstance(); DatabaseReference 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 a partir do 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.
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()) } })
Java
// Read from the database myRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull 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(@NonNull DatabaseError error) { // Failed to read value Log.w(TAG, "Failed to read value.", error.toException()); } });
Opcional: configurar o ProGuard
Ao usar o Firebase Realtime Database no app com o ProGuard, considere como os objetos do modelo
serão serializados e desserializados após a
ofuscação. Ao 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 obter 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
- Saiba como estruturar dados para o Realtime Database.
- Distribua seus dados por várias instâncias de banco de dados.
- Leia e grave dados.
- Acesse o banco de dados no console do Firebase.