我设置了两个听众

  • 查询以获取最后一条消息
  • 如果最后一条消息是组类型,我正在使用组监听器
  • 获取组信息

    但是,当我使用messageListener从消息中获取类型并设置groupListener时,它将返回多个onDataChangeDebug.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);
    

    最佳答案

    如果您需要一次接收数据,则需要使用addListenerForSingleValueEvent(...)而不是addValueEventListener(...)。然后onDataChange()将仅返回一次

    关于android - 在增值事件监听器中多次调用基于Data Change的firebase,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44039551/

    10-10 03:13