Catch up on everthing we announced at this year's Firebase Summit. Learn more

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

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

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

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

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

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

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

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

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

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

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

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

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

При включении в реальном времени базы данных, он также позволяет API в Cloud API диспетчера .

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

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

Джава

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

    // 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 Банка Москвы , ваше приложение будет всегда использовать совместимые версии библиотек Firebase Android.

(Альтернативный) Объявляет Firebase библиотеки зависимостей без использования спецификации

Если вы решите не использовать Firebase BoM, вы должны указать каждую версию библиотеки Firebase в ее строке зависимости.

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

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.3'
}

Котлин + KTX

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

    // 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 Банка Москвы , ваше приложение будет всегда использовать совместимые версии библиотек Firebase Android.

(Альтернативный) Объявляет Firebase библиотеки зависимостей без использования спецификации

Если вы решите не использовать Firebase BoM, вы должны указать каждую версию библиотеки Firebase в ее строке зависимости.

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

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.3'
}

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

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

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

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

Джава

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

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

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

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

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