Подключите свое приложение к Firebase

Если вы еще этого не сделали, добавьте Firebase в свой проект Android .

Создать базу данных

  1. Перейдите в раздел Realtime Database консоли Firebase . Вам будет предложено выбрать существующий проект Firebase. Следуйте рабочему процессу создания базы данных.

  2. Выберите начальный режим для Firebase Security Rules :

    Тестовый режим

    Хорошо подходит для начала работы с библиотеками мобильных и веб-клиентов, но позволяет любому читать и перезаписывать ваши данные. После тестирования обязательно ознакомьтесь с разделом Understand Firebase Realtime Database Rules .

    Чтобы начать работу с веб-, Apple или Android SDK, выберите тестовый режим.

    Заблокированный режим

    Запрещает все чтения и записи с мобильных и веб-клиентов. Ваши аутентифицированные серверы приложений по-прежнему могут получить доступ к вашей базе данных.

  3. Выберите место для базы данных.

    В зависимости от местоположения базы данных URL-адрес новой базы данных будет иметь одну из следующих форм:

    • DATABASE_NAME .firebaseio.com (для баз данных в us-central1 )

    • DATABASE_NAME . REGION .firebasedatabase.app (для баз данных во всех других местах)

  4. Нажмите Готово .

При включении 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")
}
Ищете модуль библиотеки, специфичный для Kotlin? Начиная с октября 2023 года ( Firebase BoM 32.5.0) разработчики Kotlin и Java смогут полагаться на основной модуль библиотеки (подробности см. в разделе часто задаваемых вопросов об этой инициативе ).

Настройка 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 , чтобы гарантировать, что доступ к вашим базам данных смогут получить только ваши приложения.

Следующие шаги