Firebase" addListenerForSingleValueEvent"不断获取Firebase数据库中不再存在的旧值?

时间:2017-04-24 16:07:24

标签: android firebase firebase-realtime-database

我不断从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) {

            }
        });

1 个答案:

答案 0 :(得分:1)

更新所有值时需要使用的方法是addValueEventListener()。因为您需要侦听多个值,所以这是实现它并使用addListenerForSingleValueEvent()的唯一方法。

最重要的是删除listener方法中的onDestroy,如下所示:

yourReference.removeEventListener(valueEventListener);