2017-04-24 36 views
-1

我一直從我的Firebase數據庫中獲取舊值(不再位於數據庫中)。這裏是數據庫的外觀現在:Firebase「addListenerForSingleValueEvent」是否會繼續獲取不再位於Firebase數據庫中的舊值?

enter image description here

我得到friendlist下的信息。它曾經是隻有一個孩子,鍵值集soosk: true,但現在它看起來像照片。當使用addListenerForSingleValueEvent()加入我的databaseRef時,檢索到的好友列表中只有soosk: true。這裏是我的代碼:

mFirebaseDatabaseReference = FirebaseDatabase 
       .getInstance() 
       .getReference(
         "users/"+FirebaseAuth.getInstance().getCurrentUser().getUid() 
       ); 

     mFirebaseDatabaseReference.addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       User user = dataSnapshot.getValue(User.class); 
       Log.d(TAG, user.getFriendlist().toString()); 
      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 
+0

你在哪裏設置新的價值? –

+0

@AlexM。直接在Firebase控制檯 – Carlton

+0

當您更改值時,讓我們假設'chris'從'true'到'false',當您顯示數據時,顯示爲'false'? –

回答

1

你需要使用的方法來更新所有的值是addValueEventListener()。因爲您需要傾聽多個價值,所以這是實現該目標並使用addListenerForSingleValueEvent()的唯一方法。

最重要的是去除listeneronDestroy方法是這樣的:

yourReference.removeEventListener(valueEventListener); 
+0

再次感謝您! – Carlton

+0

不客氣! –

相關問題