我有一個列表,其中充滿了用戶 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
提交
取消