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

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

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

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

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

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

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

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

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

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

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

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

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

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

  4. Щелкните Готово .

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

Добавьте SDK Realtime Database SDK в свое приложение.

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

Kotlin+KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:32.1.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-ktx'
}

Используя 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-ktx:20.2.2'
}

Java

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:32.1.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:20.2.2'
}

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

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

Запись в вашу базу данных

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

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

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

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

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