首页 > 解决方案 > 我无法从 android 的 firebase 数据库中获取用户数据?

问题描述

我的数据库结构是:rootNode->node1->Uid->RandomId(我从 push.getKey() 方法获得)然后是我的数据->(姓名、电子邮件、电话)

projectName:
     SampleUsers
           Uid
              RandomKey1(i get this random key by push.getKey() method)
                         Name : User1
                         Email : user@email.com
                         Phone : +1234567890
              RandomKey2
                         Name : User1
                         Email : user@email.com
                         Phone : +1234567890 

我想在用户登录时在他的个人资料页面中显示用户详细信息。但我无法得到那个随机密钥;

mUserRef =  firebaseDatabase.getReference("Users").child(mAuth.getCurrentUser().getUid());

标签: androidfirebasefirebase-realtime-database

解决方案


要显示给定快照的所有子节点,请遍历DataSnapshot.getChildren(). 例如:

DatabaseReference userRef =  firebaseDatabase.getReference("Users").child(mAuth.getCurrentUser().getUid());
userRef.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
            System.out.println(childSnapshot.getKey()); // the push ID
            System.out.println(childSnapshot.child("Name").getValue(String.class));
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        throw databaseError.toException();
    }
}

推荐阅读