Firestore: полностью отключить кеш для чтения и записи - PullRequest
0 голосов
/ 25 мая 2018

Я использую Firestore (из Firebase) и безуспешно пытался отключить использование кэша.

Вот моя проблема.Если я отключаю свое устройство от Интернета и выполняю это ...

getFireStoreInstance()
    .collection(PATH)
    .document(myObject.id)
    .set(myObject)
    .addOnCompleteListener( ... )

или это ...

getFireStoreInstance()
    .collection(PATH)
    .batch()
    .update(...)
    .commit()

... ничего не происходит (что хорошо, потому что янет подключения к интернету).Однако, как только я снова подключаю свое устройство к Интернету, вызывается completionListener, чтобы уведомить меня о том, что действие было завершено.

Что я хотел бы, это когда мое устройство не имеет доступа кв интернете действие завершается неудачно и completionListener вызывается с ошибкой.Возможно ли это?

Конечно, я пробовал следующий код (из Firestore doc ), но похоже, что он не имеет никакого эффекта для записи (хотя он и имеет эффект для чтения).

val settings = FirebaseFirestoreSettings.Builder()
        .setPersistenceEnabled(false)
        .build()

FirebaseFirestore.getInstance().firestoreSettings = settings

Заранее спасибо

1 Ответ

0 голосов
/ 25 мая 2018

Слушатели никогда не выходят из строя из-за подключения к сети, и вы не можете изменить это поведение.Они всегда молча повторяют.Весь смысл использования такого упругого SDK заключается в том, чтобы предотвратить сбои в работе вашего приложения, когда его сетевое подключение ненадежное - и это часто случается с мобильными приложениями.

Если вам требуется что-то не так из-за отсутствияподключения, создайте конечную точку HTTP (или вызываемой) с помощью облачных функций и вызовите ее напрямую.Вызов не удастся, если сокет HTTP не может подключиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...