我想创建一个ArrayList,其中包含通过调用数据库找到的所有用户ID。 这是我目前的操作方式:
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
userId= ds.getKey();
users.add(userId); // adding each user to the ArrayList called users
}
}
到目前为止,我将每个用户添加到arraylist中。但是现在我需要在回调之外对该arraylist进行操作。但是,在该范围之外不可见,这是有道理的,因为它是异步的,您无法确定它何时完成。那么最好的方法是什么?例如,如果它不在侦听器之外,我什至无法执行最简单的操作,例如输出id:
int listSize = users.size();
for (int i = 0; i<listSize; i++){
Log.d("tag: ", users.get(i));
}
}
如果以上代码不在onDataChange内,则无法调用它。在侦听器外部使用数组列表并确保已完成的正确方法是什么?还是我必须在每个ID里面都做?