Firestore:完全禁用缓存以进行读写

时间:2018-05-25 05:21:40

标签: android firebase google-cloud-firestore

我使用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 :(得分:0)

听众不会因网络连接而失败,您无法改变这种行为。他们总是默默地重试。拥有像这样的弹性SDK的全部意义在于,当网络连接很复杂时,可以防止应用程序出现意外中断 - 这种情况很可能发生在移动应用程序中。

如果由于缺乏连接而需要失败,请使用云功能创建HTTP(或可调用)端点,并直接调用它。如果HTTP套接字无法连接,则调用将失败。