为了账号安全,请及时绑定邮箱和手机立即绑定

仅当前一个对象完成时,如何从 Firebase 获取对象?

仅当前一个对象完成时,如何从 Firebase 获取对象?

HUH函数 2022-01-19 15:37:51
我有一个列表,其中充满了用户 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();


查看完整回答
反对 回复 2022-01-19
  • 1 回答
  • 0 关注
  • 161 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号