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

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

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

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

  2. Выберите начальный режим для правил безопасности Firebase:

    Режим тестирования

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

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

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

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

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

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

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

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

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

Когда вы включаете базу данных реального времени, она также включает API в Cloud API Manager .

Добавьте SDK базы данных реального времени в свое приложение.

В файле Gradle вашего модуля (на уровне приложения) (обычно <project>/<app-module>/build.gradle.kts или <project>/<app-module>/build.gradle ) добавьте зависимость для базы данных реального времени. библиотека для Android. Мы рекомендуем использовать Firebase Android BoM для управления версиями библиотеки.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:33.0.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, вы должны указать каждую версию библиотеки 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 (подробнее см. FAQ по этой инициативе ).

Настройка правил безопасности базы данных в реальном времени

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

Напишите в свою базу данных

Получите экземпляр вашей базы данных с помощью getInstance() и укажите местоположение, в которое вы хотите записать.

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!");

Таким образом вы можете сохранить в базе данных различные типы данных, включая объекты Java. Когда вы сохраняете объект, ответы от любых геттеров будут сохранены как дочерние элементы этого местоположения.

Чтение из вашей базы данных

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

Метод onDataChange() в этом классе запускается один раз при подключении прослушивателя и снова при каждом изменении данных, включая дочерние элементы.

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());
    }
});

Необязательно: Настройте ProGuard

При использовании базы данных Firebase Realtime в вашем приложении вместе с 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 и получите помощь от эксперта.

Подготовьтесь к запуску

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

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

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