我使用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
提前谢谢
答案 0 :(得分:0)
听众不会因网络连接而失败,您无法改变这种行为。他们总是默默地重试。拥有像这样的弹性SDK的全部意义在于,当网络连接很复杂时,可以防止应用程序出现意外中断 - 这种情况很可能发生在移动应用程序中。
如果由于缺乏连接而需要失败,请使用云功能创建HTTP(或可调用)端点,并直接调用它。如果HTTP套接字无法连接,则调用将失败。