Я использую Firestore с Android SDK (11.6.2), и я получаю исключение, когда мое устройство было в автономном режиме и повторно подключается к Интернету.
При запросе документа происходит сбой в firestore со следующим исключением задачи:
com.google.firebase.firestore.FirebaseFirestoreException: не удалось получить документ, поскольку клиент находится в автономном режиме.
Тем не менее, устройство подключено, я могу делать сетевые запросы рядом с использованием Firestore, и они успешно. Эта ошибка не является постоянной, иногда запрос будет выполнен сразу после повторного подключения к Интернету. Иногда запрос повторяется снова и снова, а затем завершается успешно, иногда более чем через одну минуту после повторного подключения устройства к Интернету.
Вот пример запроса, который создает исключение:
val docRef = firestore.collection("foo").document("bar")
docRef.get().addOnCompleteListener { task ->
if (task.isSuccessful) {
Log.d("FirestoreSourceSet", "Get document success")
} else {
Log.e("FirestoreSourceSet", "Get document error", task.exception)
}
}
Я не использую автономные возможности Firestore, поэтому экземпляр FirebaseFirestore впервые инициализируется с setPersistenceEnabled(false)
:
val firestoreSettings = FirebaseFirestoreSettings.Builder()
.setPersistenceEnabled(false)
.build()
val firestore = FirebaseFirestore.getInstance().apply {
this.firestoreSettings = firestoreSettings
}
Почему Firestore возвращает эту ошибку, даже если устройство подключено к сети? Я что-то упустил в конфигурации Firestore, чтобы избежать этой ошибки?
Я попытался обновить Firebase до версии 11.8.0, но у меня такое же поведение.
бревна
Это журналы при попытке получить синхронизацию некоторых данных с Firestore (который начинается с выборки документа) после выхода из режима полета: https://pastebin.com/xDMG2Pzj
Сеть уже доступна до первого звонка Firestore, так как я ждал, пока установится Wi-Fi, и проверил его с помощью ConnectivityManager в Android, прежде чем приступить к Firestore.
Несколько вызовов вызваны тем, что я вручную повторяю попытку, используя кнопку каждый раз, когда получаю сообщение об ошибке, пока документ не будет успешно извлечен.
Первая строка журнала - это когда я переключаю режим самолета, который закрывает поток Firestore.
Изменение: выпуск
У Firebase нет общедоступного трекера, но я сообщил о проблеме с помощью их инструмента отчетов и сделал репозиторий, который воспроизводит проблему.
Они признали проблему, но не смогли предоставить ETA, поэтому мы должны подождать:
Если мы выпустим исправление, мы объявим об этом на нашей странице заметок о выпуске.
Это все еще проблема с ядром firestore 17.0.4