Если вы еще этого не сделали, добавьте Firebase в свой проект Android .
Создать базу данных
Перейдите в раздел Realtime Database консоли Firebase . Вам будет предложено выбрать существующий проект Firebase. Следуйте рабочему процессу создания базы данных.
Выберите начальный режим для Firebase Security Rules :
- Тестовый режим
Хорошо подходит для начала работы с библиотеками мобильных и веб-клиентов, но позволяет любому читать и перезаписывать ваши данные. После тестирования обязательно ознакомьтесь с разделом Understand Firebase Realtime Database Rules .
Чтобы начать работу с веб-, Apple или Android SDK, выберите тестовый режим.
- Заблокированный режим
Запрещает все чтения и записи с мобильных и веб-клиентов. Ваши аутентифицированные серверы приложений по-прежнему могут получить доступ к вашей базе данных.
Выберите место для базы данных.
В зависимости от местоположения базы данных URL-адрес новой базы данных будет иметь одну из следующих форм:
DATABASE_NAME .firebaseio.com
(для баз данных вus-central1
)DATABASE_NAME . REGION .firebasedatabase.app
(для баз данных во всех других местах)
Нажмите Готово .
При включении Realtime Database также включается API в Cloud API Manager .
Добавьте Realtime Database SDK в свое приложение
В файле Gradle вашего модуля (уровня приложения) (обычно<project>/<app-module>/build.gradle.kts
или <project>/<app-module>/build.gradle
) добавьте зависимость для библиотеки Realtime Database для Android. Мы рекомендуем использовать Firebase Android BoM для управления версиями библиотеки.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.13.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") }
Благодаря использованию Firebase Android BoM ваше приложение всегда будет использовать совместимые версии библиотек Firebase Android.
(Альтернатива) Добавьте зависимости библиотеки Firebase без использования BoM
Если вы решите не использовать Firebase BoM , вам необходимо указать каждую версию библиотеки Firebase в строке ее зависимостей.
Обратите внимание: если вы используете в своем приложении несколько библиотек Firebase, мы настоятельно рекомендуем использовать BoM для управления версиями библиотек, что гарантирует совместимость всех версий.
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") }
Настройка Realtime Database Security Rules
Realtime Database предоставляет язык декларативных правил, который позволяет вам определять, как должны быть структурированы ваши данные, как они должны быть индексированы и когда ваши данные могут быть прочитаны и записаны.
Запишите в свою базу данных
Получите экземпляр вашей базы данных с помощью getInstance()
и укажите место, куда вы хотите записать данные.
Kotlin
// 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!");
Таким образом, вы можете сохранить ряд типов данных в базе данных, включая объекты Java. При сохранении объекта ответы от любых геттеров будут сохранены как дочерние элементы этого местоположения.
Чтение из вашей базы данных
Чтобы данные вашего приложения обновлялись в режиме реального времени, вам следует добавить ValueEventListener
к только что созданной вами ссылке.
Метод onDataChange()
в этом классе срабатывает один раз при присоединении прослушивателя и снова каждый раз при изменении данных, включая дочерние элементы.
Kotlin
// 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()); } });
Необязательно: настроить ProGuard
При использовании Firebase Realtime Database в вашем приложении вместе с ProGuard вам необходимо учитывать, как будут сериализованы и десериализованы объекты вашей модели после обфускации. Если вы используете DataSnapshot.getValue(Class)
или DatabaseReference.setValue(Object)
для чтения и записи данных, вам необходимо добавить правила в файл 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.** {
*;
}
Чтобы получить помощь по вопросам или проблемам, связанным с ProGuard, посетите форумы сообщества Guardsquare, где можно получить помощь эксперта.
Подготовка к запуску
Перед запуском приложения мы рекомендуем вам ознакомиться с нашим контрольным списком запуска , чтобы убедиться, что ваше приложение готово к запуску!
Обязательно включите App Check , чтобы гарантировать, что доступ к вашим базам данных смогут получить только ваши приложения.
Следующие шаги
- Узнайте, как структурировать данные для Realtime Database
- Масштабируйте свои данные по нескольким экземплярам базы данных .
- Чтение и запись данных .
- Просмотрите свою базу данных в консоли Firebase .