Код: Выделить всё
information_ReadingBinding.testting.setOnClickListener {
Toast.makeText(this, "Hello user", Toast.LENGTH_LONG).show()
reference.child("Users").child("Welcome").setValue("Hello Firebase").addOnCompleteListener { task ->
if (task.isSuccessful) {
Log.d("Firebase", "Test data saved successfully.")
Toast.makeText(applicationContext, "Testing successful..", Toast.LENGTH_SHORT).show()
} else {
Log.e("Firebase", "Failed to save test data: ${task.exception?.message}")
Toast.makeText(applicationContext, "Failed to save data: ${task.exception?.message}", Toast.LENGTH_LONG).show()
}
}
}
Что я сделал:
1. Firebase успешно интегрирована. следуя официальной документации Firebase для Android.
2. Убедился, что google-services.json правильно добавлен в мой проект.
3.Убедился, что зависимости Firebase включены в файлы build.gradle.
4.Подтверждено, что база данных реального времени включена в консоли Firebase.
5.Проверены правила Firebase; в настоящее время они настроены на доступ для чтения и записи:
Код: Выделить всё
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
Проблема:
Данные не сохраняются в база данных Firebase Realtime.
Блоки успеха или сбоя в .addOnCompleteListener не выполняются.
Отображается только всплывающее сообщение «Привет, пользователь».
Среда:
Android Studio Фламинго | 2022.2.1, патч 2
Версия Firebase Database SDK: 20.0.6
Версия Kotlin: 1.8.10
Тестирование на Android 12.
Вопрос:
Почему метод setValue не сохраняет данные в базу данных?
Что я упускаю или делаю неправильно?
Будем очень признательны за любую помощь или предложения!
Что я пробовал:
Проверенная конфигурация Firebase:
Выполнил официальные шаги Firebase, чтобы интегрировать базу данных реального времени.
Убедился, что google-services.json находится в каталоге приложения.
Зависимости:
Проверено, что следующие зависимости добавлено в файл build.gradle:
gradle
Код: Выделить всё
implementation 'com.google.firebase:firebase-database-ktx:20.0.6'
implementation 'com.google.firebase:firebase-auth-ktx:22.1.1'
Временно изменены правила базы данных на:
Код: Выделить всё
{
"rules": {
".read": "true",
".write": "true"
}
}
Отладка:
Добавлены операторы Log.d() для проверки наличия вызывается метод setValue().
Подтверждено, что прослушиватель кликов работает должным образом, поскольку появляется всплывающее сообщение «Привет, пользователь».
Перестроение и тестирование:
Очистил и пересобрал проект в Android Studio.
Удалил и переустановил приложение на тестируемом устройстве, чтобы обеспечить новую установку.
Ожидаемый результат:
При нажатии кнопки данные («Hello Firebase») должны быть записаны в путь «Пользователи/Добро пожаловать» в базе данных Firebase Realtime.
В случае успеха приложение должно отобразить всплывающее сообщение «Тестирование успешно..».
При возникновении ошибки необходимо записать сообщение об ошибке и отобразить всплывающее сообщение с указанием причины сбоя
Подробнее здесь: https://stackoverflow.com/questions/793 ... ntegration
Мобильная версия