gpt4 book ai didi

java - 如何仅在前一个对象完成时才从 Firebase 获取对象?

转载 作者:行者123 更新时间:2023-12-02 10:35:59 25 4
gpt4 key购买 nike

我有一个充满用户 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 在这个 post 中的回答中发表的评论但我无法完成这个任务。谢谢!!!

最佳答案

要按顺序加载它们,只需从列表中删除您获得的 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();

关于java - 如何仅在前一个对象完成时才从 Firebase 获取对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53288315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com