我懷疑在addOnCompleteListener使用時是否真的有必要打電話setPersistence(true)。當我使用addOnCompleteListener時,如果我的互聯網處于離線狀態,屏幕會繼續加載,因為addOnCompleteListener永遠不會結束 - 等待連接。所以,我不能離線添加任何東西,因為加載屏幕正在等待連接(打破了持久性的概念)。下面的示例顯示了我在說什么:getDatabaseReference() .child("Example") .child(userID) .push() .setValue(dataExample) .addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { if (task.isSuccessful()){ //interface call with success response interface.onSuccess(); }else { //interface call with failure response interface.onFailure(task.getException().getMessage()); } }});所以,正如我所說,如果我的互聯網處于離線狀態,我無法完成操作,加載屏幕會永遠加載(等待完整偵聽器)。我發現,如果沒有addOnCompleteListener,我可以在離線時添加和刪除值,因為它們在緩存中,所以當我有互聯網時,應用程序會將更新發送到在線數據庫 - 這太棒了。下面的示例顯示了我的建議: getDatabaseReference() .child("Example") .child(userID) .push() .setValue(dataExample); //interface call with successful response without handling error (because it won't happen) interface.onSuccess();所以,我的問題是,這樣做對嗎?這是一個好習慣嗎?沒有addOnCompleteListener,并且可以離線使用我的應用程序,僅在可以時發送更新?
當您在 Firebase 上使用 .setPersistenceEnabled(true) 時
慕田峪9158850
2022-07-27 21:06:08