[英]Firestore how to disable automatic sync with cloud database?
我注意到這種行為:
問題是我在onCompleteListener中執行的操作未運行。 就像在描述的場景中未運行此代碼段(做一些非常重要的事情)一樣 ,當用戶脫機時也不會調用OnFailureListener,因此我無法確定它是否正常運行。
FirebaseFirestore.getInstance().document(...).collection(...)
.set(message).addOnCompleteListener {
//do some super important stuff
}
在這種情況下 ,我寧願自己進行同步,所以我希望它失敗並且不再重復。
僅在這種情況下,如何才能禁用Firestore的自動同步?
因此,我想問這個問題,然后以某種方式將Firestore交易轉交給我。 因此,為了解決此問題,我使用了事務( firestore / 實時數據庫 )
客戶端脫機時事務將失敗。
所以現在如何運作。
我嘗試運行事務。 A如果失敗,則將其存儲到數據庫中B如果成功,則嘗試從數據庫中刪除它,並在每次啟動應用程序時運行同步服務(檢查未同步的dbs並插入丟失的內容)
val OBJECT = ...
val ref = FirebaseFirestore.getInstance().document(...).collection(...)
FirebaseFirestore.getInstance().runTransaction(
object : Transaction.Function<Boolean> {
override fun apply(transaction: Transaction): Boolean? {
transaction.set(ref, OBJECT)
transaction.update(ref, PROPERTY, VALUE)
return true
}
})
.addOnSuccessListener {
println("Inserting $OBJECT ended with success==$it")
//todo remove from dbs (unsynced messages)
}.addOnFailureListener {
it.printStackTrace()
//todo save to dbs (unsynced messages)
}
//它們在實時數據庫中的工作方式相似
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.