从firebase获取用户数据的特定值

时间:2017-12-04 16:06:55

标签: android firebase firebase-realtime-database firebase-authentication

在我的应用程序中,我有注册屏幕。它要求提供用户名,电子邮件和密码。我正在将电子邮件和用户名推送到firebase实时数据库。假设现在用户从我的应用程序注销,卸载应用程序并再次安装并尝试登录。在登录屏幕中,我只询问电子邮件和密码,如何检索用户的用户名。由于用户可能会在注册后卸载应用程序,因此共享优先权将无效。我尝试了以下代码,但它没有给出正确的输出。

 mFirebaseDatabase = FirebaseDatabase.getInstance();
 mMessagesDatabaseReference = mFirebaseDatabase.getReference().child("userdetails");
 mMessagesDatabaseReference.child( auth.getCurrentUser().getUid()).child("USERNAME")

我的数据库如下所示

enter image description here

如何在记录时获取用户名,因为在记录时只询问电子邮件和密码。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

要获取用户名,您需要在该特定节点上附加侦听器。请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = rootRef.child("userdetails").child(auth.getCurrentUser().getUid()).child("USERNAME");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String USERNAME = dataSnapshot.getValue(String.class);
        Log.d("TAG", USERNAME);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
uidRef.addListenerForSingleValueEvent(eventListener);

您的输出将是:

pritish