在添加值事件侦听器中多次调用数据更改上的firebase

roo*_*per 4 android firebase firebase-realtime-database

我设置了两个听众

  1. 查询以获取最后一条消息
  2. 如果最后一条消息是组类型,我将使用组Listener获取组信息

但是,当我使用messageListener从消息中获取类型并设置groupListener时,它返回多个onDataChange, Debug.e("parentsnap",dataSnapshot.getValue().toString());被调用多次,我应该怎么做,请指导

    groupListener = new ValueEventListener() {
        @SuppressWarnings("unchecked")
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            Debug.e("parent snap", dataSnapshot.getValue().toString());
            for (DataSnapshot d :
                    dataSnapshot.getChildren()) {
           //my code
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    };
    groups.child(chatId).addValueEventListener(groupListener);
Run Code Online (Sandbox Code Playgroud)

Pha*_*inh 6

如果您需要一次性接收数据addListenerForSingleValueEvent(...)而不是 addValueEventListener(...).然后onDataChange()只返回一次