Android Firebase检索经过身份验证的用户信息

我正在制作一个Android应用,人们可以登录和注册,他们将拥有一个个人资料,其中包含他们的所有信息,例如名字,姓氏,电子邮件。我正在使用Firebase,因此可以构建此应用程序。我遇到的问题是我正在尝试从Firebase数据库检索经过身份验证的用户信息,例如他们的名字或姓氏,但我看不出如何将其提取出来。我只能在那儿收到电子邮件,电话号码或个人资料照片。下面是我的代码。

 //Register.java
       fname=(EditText)findViewById(R.id.your_name);
    lname=(EditText)findViewById(R.id.your_last_name);
    email=(EditText)findViewById(R.id.signupemail);
    password=(EditText)findViewById(R.id.signuppassword);

    signinbutton=(TextView) findViewById(R.id.have_an_account_button);
    signupbutton=(TextView) findViewById(R.id.signupbutton1);

    firebaseAuth=FirebaseAuth.getInstance();

    databaseReference=FirebaseDatabase.getInstance().getReference("businessowners");

    signupbutton.setOnClicklistener(new View.OnClicklistener() {
        @Override
        public void onClick(View view) {

            final String txt_firstname=fname.getText().toString();
            final String txt_lastname=lname.getText().toString();
            final String txt_email=email.getText().toString();
            final String txt_password=password.getText().toString();

            if(txt_firstname.isEmpty() ){
                Toast.makeText(Registeractivity.this,"Name required",Toast.LENGTH_SHORT).show();


            }



            if(txt_email.isEmpty()){

                Toast.makeText(Registeractivity.this,"Email required",Toast.LENGTH_SHORT).show();

            }

            if(txt_password.isEmpty()){
                Toast.makeText(Registeractivity.this,"Password",Toast.LENGTH_SHORT).show();


            }



            firebaseAuth.createUserWithEmailAndPassword(txt_email,txt_password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if(task.isSuccessful()){

                       businessowners information=new businessowners(

                                txt_firstname,txt_lastname,txt_email
                        );

                        FirebaseDatabase.getInstance().getReference("businessowners").child(FirebaseAuth.getInstance().getcurrentUser().getUid())
                                .setvalue(information).addOnCompleteListener(new OnCompleteListener<Void>() {
                            @Override
                            public void onComplete(@NonNull Task<Void> task) {
                                Toast.makeText(Registeractivity.this,"Registration successful",Toast.LENGTH_SHORT).show();

                                Intent inty=new Intent(Registeractivity.this,Loginactivity.class);
                                startactivity(inty);
                            }
                        });

                    }else if(task.getException() instanceof FirebaseAuthUserCollisionException){

                      email.setError("Email exist");
                      email.requestFocus();

                    }
                }
            });


        }
    });


 //Profile.java
txt=(EditText)findViewById(R.id.edit_email);
    txt1=(EditText)findViewById(R.id.edit_firstname);

    signoutbtn=(TextView)findViewById(R.id.signout);

    firebaseAuth=FirebaseAuth.getInstance();

    DatabaseReference ref=FirebaseDatabase.getInstance().getReference("user");

    String UID=FirebaseAuth.getInstance().getcurrentUser().getUid();


    FirebaseUser firebaseUser=firebaseAuth.getcurrentUser();

    //Get users email
    String user_info1=firebaseUser.getEmail();

    //display users email
    txt.setText(user_info1);







    signoutbtn.setOnClicklistener(new View.OnClicklistener() {
        @Override
        public void onClick(View view) {
            firebaseAuth.signOut();
            finish();
            Intent inty=new Intent(Profileactivity.this,Loginactivity.class);
            startactivity(inty);
        }
    });
lm1160 回答:Android Firebase检索经过身份验证的用户信息

  

我遇到的问题是我正在尝试从Firebase数据库中检索经过身份验证的用户信息,例如他们的名字或姓氏

问题是您试图从{strong>不包含该信息的FirebaseUser对象获取名字和姓氏。在下面的代码行中:

firebaseAuth.createUserWithEmailAndPassword(txt_email,txt_password)

您将仅{strong>仅使用createUserWithEmailAndPassword()txt_email的{​​{1}}方法,这就是为什么只有该数据可用的原因。如果要获取所有数据,则需要从数据库获取它,因为所有这些数据仅存在于那里。以下代码可以解决问题:

txt_password

logcat中的输出将是经过身份验证的用户的名字和姓氏。

本文链接:https://www.f2er.com/3143315.html

大家都在问