Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 如何获取所有孩子的数据在firebase数据库?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个firebase数据库

我需要收到用户的所有电话号码,@R_947_10675@用哪个听众来收集所有的孩子?

每个用户添加一个对象,用户ID作为该对象的名称,我需要检索这个对象,而不知道用户ID

搜索的文档,它与DataSnapshot相关,但我无法得到没有监听器的DataSnapshot!寻求DataSnapshout是正确的,还是使用别的东西

解决方法

首先检索您的用户数据快照.
//Get datasnapshot at your "users" root node
    DatabaseReference ref = FirebaseDatabase.geTinstance().getReference().child("users");
    ref.addListenerForSingleValueEvent(
            new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    //Get map of users in datasnapshot
                    collectPhonenumbers((Map<String,Object>) dataSnapshot.getValue());
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {
                    //handle databaseError
                }
            });

然后循环访问用户,访问他们的地图并收集电话字段.

private void collectPhonenumbers(Map<String,Object> users) {

    ArrayList<Long> phonenumbers = new ArrayList<>();

    //iterate through each user,ignoring their UID
    for (Map.Entry<String,Object> entry : users.entrySet()){

        //Get user map
        Map singleUser = (Map) entry.getValue();
        //Get phone field and append to list
        phonenumbers.add((Long) singleUser.get("phone"));
    }

    System.out.println(phonenumbers.toString());
}

这个监听器只有在显式调用时才会检索数据捕获.虑除了您的用户节点之外,还存储“allPhonenumbers”节点下的数字列表.这将使您的数据更新更轻,更容易处理时收集所有数字.如果你说数百个用户,“用户”数据快照将会变得太大,“allPhonenumbers”列表的效率会更高.

上面的代码已经在您的示例数据库上进行了测试,并且工作正常但是,根据用户的电话实例字段的类型,您的手机字段可能需要转换为String或int.

大佬总结

以上是大佬教程为你收集整理的android – 如何获取所有孩子的数据在firebase数据库?全部内容,希望文章能够帮你解决android – 如何获取所有孩子的数据在firebase数据库?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。