【问题标题】:How to get the Child in Firebase Android?如何在 Firebase Android 中获取孩子?
【发布时间】:2018-03-12 18:09:08
【问题描述】:

我正在尝试使用firebase 在我的应用程序中执行login 操作,我的Users 节点类似于:

mUserCompounds.orderByChild("email").equalTo("test@gmail.com").addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {
                        System.out.println(dataSnapshot.getChildrenCount());                        }

                    @Override
                    public void onCancelled(DatabaseError databaseError) {

                    }
                });

我想获得与名称匹配的完整object。这样

我还可以比较密码等。 感谢您的帮助。

【问题讨论】:

  • 你分享的代码有什么问题?它有什么作用?你期望它做什么?
  • 亲爱的我想得到测试对象,这样我就可以使用图像、pointsTotal 和其他值。我所知道的关于用户的所有信息都是他的电子邮件和密码,基于我想要获取完整对象的电子邮件和密码。
  • 您的问题不清楚。您想获取节点“test”的值以便与其他值进行比较吗?
  • @Lucem 亲爱的,我有两个值 email 和 password 基于此信息我想获得完整的记录,即“test”节点及其所有子值。

标签: android firebase firebase-realtime-database


【解决方案1】:

首先制作一个用户数据的 pojo 类。

Class User {
 String about;
 String email;
 String image;
 String name;
 String password;
 String pointsTotal;
 String totalTasksDone;
}

制作getter setter并定义构造函数。

mUserCompounds.orderByChild("email").equalTo("test@gmail.com").addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    if (dataSnapshot.exists()) {
                         //User already exists
                         User user1 = dataSnapshot.getValue(User.class); 
                         System.out.println(user1.getPassword());
                       }
                  }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });

【讨论】:

    【解决方案2】:

    这很简单

    mUserCompounds.orderByChild("email").equalTo("test@gmail.com").addValueEventListener(new ValueEventListener() {
                            @Override
                            public void onDataChange(DataSnapshot dataSnapshot) {
    
                            Log.i("your tag",""+dataSnapshot.toString());
        }
    
                            @Override
                            public void onCancelled(DatabaseError databaseError) {
    
                            }
                        });
    

    【讨论】:

      【解决方案3】:

      访问 Firebase 文档 enter link description here

      read firebase data 还要始终使用 Pushkey 将数据推送到 Firebase,这样您就可以获得整个对象。

      【讨论】:

      • 我在用户节点下有一个名为 test 的键。
      • 不,你必须使用按键来推动对象。
      • 代码示例:DatabaseReference postsRef = ref.child("posts"); DatabaseReference newPostRef = postsRef.push(); newPostRef.setValue(new Post("gracehop", "Announcing COBOL, a New Programming Language")); // We can also chain the two calls together postsRef.push().setValue(new Post("alanisawesome", "The Turing Machine"));
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-09
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 2018-04-28
      • 1970-01-01
      相关资源
      最近更新 更多