问题解决了。原因是如果if语句找到了一个用户ID,则将整个数据添加到swapdetails对象中,然后又找到了另一个ID,然后再次添加了所有其他数据,依此类推。
因此,仅在if语句中创建了bloolean,并在找到交换器ID的情况下将其设为true,然后在addChildEventListene范围之外使用适配器。
shiftSwapDb.addChildEventListener(new ChildEventListener() { @Override public void onChildAdded(DataSnapshot dataSnapshot, String s) { if (dataSnapshot.exists()) { SwapDetails swapDetails = dataSnapshot.getValue(SwapDetails.class); if (swapDetails.getSwapperID().equals(fromID)) {hasSwaperID = true; } } }shiftProfileAdapter.add(swapDetails);



