Если вы ещё этого не сделали, добавьте Firebase в проект для Android.
Создание базы данных
В консоли Firebase выберите Databases & Storage (Базы данных и хранилище) > Realtime Database (База данных в реальном времени).
Нажмите Create database (Создать базу данных).
Выберите режим запуска для устройства "Firebase Security Rules":
- Режим тестирования
Подходит для начала работы с клиентскими библиотеками для мобильных устройств и веб-клиентов, но позволяет любому пользователю читать и перезаписывать ваши данные. После тестирования обязательно ознакомьтесь с разделом Правила Firebase Realtime Database.
Чтобы начать работу с SDK для веб-сайтов, устройств Apple или Android, выберите тестовый режим.
- Режим блокировки
Запрещает все операции чтения и записи для мобильных и веб-клиентов. Ваши аутентифицированные серверы приложений по-прежнему могут получать доступ к базе данных.
Выберите местоположение для базы данных.
В зависимости от местоположения базы данных URL новой базы данных будет иметь один из следующих форматов:
(для баз данных вDATABASE_NAME.firebaseio.comus-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:35.0.1")) // 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:23.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.