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

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

Create a Database

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

  2. Выберите режим запуска для ваших Firebase Security Rules :

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

    Отлично подходит для начала работы с клиентскими библиотеками для мобильных и веб-приложений, но позволяет любому пользователю читать и перезаписывать ваши данные. После тестирования обязательно ознакомьтесь с разделом « Понимание правил Firebase Realtime Database» .

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

    Locked mode

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

  3. Choose a location for the database.

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

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

    • DATABASE_NAME . REGION .firebasedatabase.app (для баз данных во всех остальных локациях)

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

При включении режима Realtime Database также активируется API в Cloud API Manager .

Add the Realtime Database SDK to your app

В файле 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:34.7.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:22.0.1")
}

Configure Realtime Database Security Rules

Realtime Database предоставляет декларативный язык правил, позволяющий определять структуру данных, способы их индексирования, а также условия чтения и записи данных.

Write to your 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. При сохранении объекта ответы от любых геттеров будут сохранены как дочерние элементы этого местоположения.

Read from your database

Чтобы данные вашего приложения обновлялись в режиме реального времени, вам следует добавить 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());
    }
});

Optional: Configure 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, где вы сможете получить консультацию эксперта.

Prepare for Launch

Перед запуском приложения мы рекомендуем ознакомиться с нашим контрольным списком , чтобы убедиться, что ваше приложение готово к работе!

Обязательно включите функцию App Check , чтобы гарантировать, что доступ к базам данных будет только у ваших приложений.

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