Если вы еще этого не сделали, добавьте Firebase в свой проект Android .
Создать базу данных
Перейдите в раздел Realtime Database консоли Firebase . Вам будет предложено выбрать существующий проект Firebase. Следуйте рабочему процессу создания базы данных.
Выберите начальный режим для Firebase Security Rules :
- Тестовый режим
Подходит для начала работы с мобильными и веб-клиентскими библиотеками, но позволяет любому читать и перезаписывать ваши данные. После тестирования обязательно ознакомьтесь с разделом «Понимание правил базы данных Firebase Realtime» .
Чтобы начать работу с веб-SDK, Apple или Android SDK, выберите тестовый режим.
- Заблокированный режим
Запрещает все операции чтения и записи со стороны мобильных и веб-клиентов. Ваши аутентифицированные серверы приложений по-прежнему смогут получить доступ к вашей базе данных.
Выберите место для базы данных.
В зависимости от расположения базы данных URL-адрес новой базы данных будет иметь одну из следующих форм:
DATABASE_NAME .firebaseio.com
(для баз данных вus-central1
)DATABASE_NAME . REGION .firebasedatabase.app
(для баз данных во всех других местах)
Нажмите Готово .
Когда вы включаете Realtime Database , она также включает API в Cloud API Manager .
Добавьте SDK Realtime Database в свое приложение.
В файле 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:33.3.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:21.0.0") }
Настройка Realtime Database Security Rules
Realtime Database предоставляет язык декларативных правил, который позволяет вам определить, как ваши данные должны быть структурированы, как их следует индексировать и когда ваши данные можно читать и записывать.
Напишите в свою базу данных
Получите экземпляр вашей базы данных с помощью 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 и получите помощь от эксперта.
Подготовьтесь к запуску
Прежде чем запускать приложение, мы рекомендуем просмотреть наш контрольный список запуска , чтобы убедиться, что ваше приложение готово к работе!
Обязательно включите App Check , чтобы гарантировать, что только ваши приложения смогут получить доступ к вашим базам данных.
Следующие шаги
- Узнайте, как структурировать данные для Realtime Database
- Масштабируйте данные по нескольким экземплярам базы данных .
- Чтение и запись данных .
- Просмотрите свою базу данных в консоли Firebase .