Если вы еще этого не сделали, добавьте 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
(для баз данных во всех других местах)
Нажмите Готово .
Добавьте SDK Realtime Database в свое приложение.
<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.9.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()
и укажите местоположение, в которое вы хотите записать.
// Write a message to the database val database = Firebase.database val myRef = database.getReference("message") myRef.setValue("Hello, World!")
// Write a message to the database FirebaseDatabase database = FirebaseDatabase.getInstance(); DatabaseReference myRef = database.getReference("message"); myRef.setValue("Hello, World!");
Чтение из вашей базы данных
ValueEventListener
к только что созданной ссылке.
onDataChange()
в этом классе запускается один раз при подключении прослушивателя и снова при каждом изменении данных, включая дочерние элементы.
// 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()) } })
// 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
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 .