2017-07-28 9 views
0

新しい値はfirebaseデータベースに設定されますが(Firebaseコンソールでチェックされます)、query datasnapshotは古い値を取得します。On firebaseデータベースへの照会datasnapshotは古い値を取得します

query.removeEventListener(this); 

持続性が有効になっているaddValueEventListener最初のデータをキャッシュして戻り、次回の新規データ:

final Query query = FirebaseDatabase.getInstance().getReference(DEVICES_TABLE).orderByChild("deviceUniqueId").equalTo(deviceUniqueId); 
query.addValueEventListener(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     Device device; 
     if (dataSnapshot.getChildren().iterator().hasNext()) { 
      device = dataSnapshot.getChildren().iterator().next().getValue(Device.class); 
      if (device.getIsEnable() == 1) { 
       loginView.onError(loginView.getContext().getString(R.string.error_device_disable)); 
       doCyberoamLogout(mUserName, location); 
      } else { 
       switch (mMessage) { 
        case CYBEROAM_LOGIN_SUCCESS_MESSAGE: 
         //login successful 
         Toast.makeText(activity, "Cyberoam login success.", Toast.LENGTH_SHORT).show(); 
         new Handler().postDelayed(new Runnable() { 
          @Override 
          public void run() { 
           getEmailUsingCyberoamId(mUserName, mPasswod); 
          } 
         }, 5000); 
         break; 
        case CYBEROAM_WRONG_PASSWORD: 
         signOutFromFirebase(); 
         loginView.onError(CYBEROAM_WRONG_PASSWORD); 
         break; 
        case CYBEROAM_MAX_LOGIN_LIMIT: 
         signOutFromFirebase(); 
         loginView.onError(loginView.getContext().getResources().getString(R.string.prompt_max_login_limit)); 
         break; 
        default: 
         signOutFromFirebase(); 
         loginView.onError(loginView.getContext().getResources().getString(R.string.action_cyberoam_login_failed)); 
         break; 
       } 
      } 
      query.removeEventListener(this); 
     } 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 

    } 

}); 
+0

コードを投稿できますか? –

+0

更新されたデータを取得していますか?キャッシュされたdb情報ではなく、新しいデータをロードするための適切なインターネット接続がある前にではない –

+0

永続性が有効になっていますか? – Pipiks

答えて

0

あなたはこの行を削除する必要があります。

関連する問題