2017-09-06 70 views
0

它是Firebase的一個非常奇怪的問題。我在Firebase節點上調用setValue(),然後期待OnComplete回調函數被調用,該函數永遠不會在特定的Internet連接上調用。其他firebase查詢也不適用於該特定的WiFi,Android:有時Firebase OnComplete回調沒有被調用

individualUserNode.setValue(user, new DatabaseReference.CompletionListener() { 
     @Override 
     public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) { 

      if (databaseError == null) { 
       EventBus.getDefault().post(new MyEvents.UserSaved(true)); 
      } else { 
       EventBus.getDefault().post(new MyEvents.UserSaved(false)); 
      } 

     } 
    }); 

回答

0

這就是expected。聽者只有一旦服務器應答該請求觸發:

該接口被用作當操作 已經由數據庫服務器確認,並且可以認爲 完整

+0

由於被通知的方法SUPERCILEX。但是,不應該有一個錯誤回調(當它超時或發生任何錯誤)? – arpitgoyal2008

+0

不幸的是,不幸的是沒有。錯誤是針對您的規則拒絕寫入的情況,而不是某些脫機錯誤。 https://stackoverflow.com/a/37190184/4548500我會建議添加一個值事件監聽器,而不是一個寫完整的監聽器。 – SUPERCILEX

相關問題