Если вы еще этого не сделали, добавьте Firebase в свой Android-проект .
Create a Database
Перейдите в раздел Realtime Database в консоли Firebase . Вам будет предложено выбрать существующий проект Firebase. Следуйте инструкциям по созданию базы данных.
Выберите режим запуска для ваших Firebase Security Rules :
- Тестовый режим
Отлично подходит для начала работы с клиентскими библиотеками для мобильных и веб-приложений, но позволяет любому пользователю читать и перезаписывать ваши данные. После тестирования обязательно ознакомьтесь с разделом « Понимание правил Firebase Realtime Database» .
Для начала работы с веб-версией, Apple SDK или Android выберите тестовый режим.
- Locked mode
Запрещает все операции чтения и записи с мобильных и веб-клиентов. Ваши аутентифицированные серверы приложений по-прежнему смогут получать доступ к вашей базе данных.
Choose a location for the database.
В зависимости от местоположения базы данных , URL-адрес новой базы данных будет иметь один из следующих форматов:
DATABASE_NAME .firebaseio.com(для баз данных в регионеus-central1)DATABASE_NAME . REGION .firebasedatabase.app(для баз данных во всех остальных локациях)
Нажмите «Готово» .
При включении режима Realtime Database также активируется API в Cloud API Manager .
Add the Realtime Database SDK to your app
В файле 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:34.7.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:22.0.1") }
Configure Realtime Database Security Rules
Realtime Database предоставляет декларативный язык правил, позволяющий определять структуру данных, способы их индексирования, а также условия чтения и записи данных.
Write to your database
Получите экземпляр вашей базы данных с помощью getInstance() и укажите место, куда вы хотите записать данные.
Kotlin
// 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. При сохранении объекта ответы от любых геттеров будут сохранены как дочерние элементы этого местоположения.
Read from your database
Чтобы данные вашего приложения обновлялись в режиме реального времени, вам следует добавить ValueEventListener к только что созданной ссылке.
Метод onDataChange() в этом классе срабатывает один раз при подключении слушателя и снова каждый раз при изменении данных, включая дочерние элементы.
Kotlin
// 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()); } });
Optional: Configure 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, где вы сможете получить консультацию эксперта.
Prepare for Launch
Перед запуском приложения мы рекомендуем ознакомиться с нашим контрольным списком , чтобы убедиться, что ваше приложение готово к работе!
Обязательно включите функцию App Check , чтобы гарантировать, что доступ к базам данных будет только у ваших приложений.
Следующие шаги
- Узнайте, как структурировать данные для Realtime Database
- Масштабируйте свои данные на нескольких экземплярах базы данных .
- Read and write data .
- View your database in the Firebase console .