我有一个列表,其中充满了用户 ID,如下所示:List<String> userIds = new ArrayList<>();现在我想遍历这个列表并从 Firebase 数据库中获取所有相应的用户对象。这是我的代码:for (String uid : userIds) { usersRef.child(uid).addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { User user = dataSnapshot.getValue(User.class); //Create another listener? } @Override public void onCancelled(@NonNull DatabaseError databaseError) {} });}我知道我可以使用嵌套侦听器,但我不能这样做,因为我的列表有超过 1000 个 uid。仅当前一个用户对象完成时,如何才能获取下一个用户对象?我从他在这篇文章中的回答中关注了 Frank van Puffelen 的评论,但我无法完成这项任务。谢谢!!!
1 回答

回首忆惘然
TA贡献1847条经验 获得超11个赞
要按顺序加载它们,只需从列表中删除您获得的 ID。
像这样的东西:
public void getNextUser() {
if (list.size() > 0) {
String uid = list.get(0)
list.remove(0);
usersRef.child(uid).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
User user = dataSnapshot.getValue(User.class);
getNextUser()
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) { throw databaseError.toException(); }
});
}
}
然后开始:
getNextUser();
添加回答
举报
0/150
提交
取消