(25.0.0) [WriteStream]: ( ed20259) Поток закрыт со статусом: Status{code=UNAVAILABLE,description=Невозможно разрешить хост firestore.googleapis.com, причина=java.lang.RuntimeException: java.net.UnknownHostException: Невозможно разрешить хост "firestore.googleapis.com" : Нет адреса, связанного с именем хоста.
Видео, показывающее ошибку: Видео с ошибкой
Кроме того, произошла значительная задержка при загрузке данных в режиме полета, как показано в этом видео: Загрузка видео с задержкой
Чтобы решить эту проблему, я протестировал тот же проект с использованием базы данных Firebase Realtime. Были добавлены зависимости и внесены изменения в репозиторий. Вот внесенные изменения:
Шаги по изменению:
1. Добавлена зависимость от базы данных реального времени в build.gradle:
Код: Выделить всё
+ implementation("com.google.firebase:firebase-database-ktx")
Код: Выделить всё
- private val database: CustomerService,
+ private val database: CustomerRealtimeService,
Код: Выделить всё
init {
Firebase.database.setPersistenceEnabled(true)
}
Соответствующий код:
ViewModel
Код: Выделить всё
fun onSaveClick(onPopUp: () -> Unit) {
launchCatching {
if (customer.value.id.isEmpty()) {
database.addCustomer(Customer(name = customer.value.name))
} else {
database.updateCustomer(customer.value)
}
onPopUp()
}
}
Наблюдения:
Моя цель — лучше понять функциональность Firebase для автономных приложений и способы решения проблем с навигацией и производительностью при использовании базы данных реального времени или Firestore. Несмотря на трудности, я предпочитаю использовать Firestore из-за его рекомендаций по документации и преимуществ с моделями данных и потоками.
Вопросы:
- < li>Каковы наилучшие методы обеспечения комфортной работы в автономном режиме с использованием базы данных Firebase Realtime или Firestore?
- Как решить проблему с навигацией при использовании блока launchCatching с onPopUp в обеих базах данных?< /li>
Почему база данных Realtime быстрее загружает автономные данные по сравнению с Firestore, который рекомендуется в качестве основного решения в документации для автономных приложений?
Подробнее здесь: https://stackoverflow.com/questions/786 ... tabase-and
Мобильная версия