android – 如何获取所有孩子的数据在firebase数据库?

android – 如何获取所有孩子的数据在firebase数据库?,第1张

概述我有这个firebase数据库 我需要收到用户的所有电话号码,我应该使用哪个听众来收集所有的孩子? 每个用户被添加为一个对象,用户ID作为该对象的名称,我需要检索这个对象,而不知道用户ID 我搜索的文档,它与DataSnapshot相关,但我无法得到没有监听器的DataSnapshot!寻求DataSnapshout是正确的,还是使用别的东西 首先检索您的用户数据快照. //Get datasna 我有这个firebase数据库

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

每个用户被添加为一个对象,用户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数据库?所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1131102.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存