2017-04-24 37 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

不客气! –

相关问题