Я создаю приложение для 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);
}
});