Установка и настройка на Android

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

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

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

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

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

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

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

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

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

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

  3. Выберите регион для базы данных. В зависимости от вашего выбора региона пространство имен базы данных будет иметь вид <databaseName>.firebaseio.com или <databaseName>.<region>.firebasedatabase.app . Для получения дополнительной информации см. Выберите места для вашего проекта .

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

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

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

Используя Firebase Android BoM , объявите зависимость для библиотеки Android Realtime Database в файле Gradle модуля (уровня приложения) (обычно app/build.gradle ).

Ява

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:28.1.0')

    // Declare 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 {
    // Declare 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.0.0'
}

Котлин + KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:28.1.0')

    // Declare 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 {
    // Declare 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.0.0'
}

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

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

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

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

Ява

// Write a message to the database
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");

myRef.setValue("Hello, World!");

Котлин + KTX

// Write a message to the database
val database = Firebase.database
val myRef = database.getReference("message")

myRef.setValue("Hello, World!")

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

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

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

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

Ява

// Read from the database
myRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(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(DatabaseError error) {
        // Failed to read value
        Log.w(TAG, "Failed to read value.", error.toException());
    }
});

Котлин + 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())
    }
})

Необязательно: настроить 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, чтобы получить помощь от эксперта.

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

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

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

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