我正在尝试使用Firebase构建此应用,我希望当用户注册后,他们将自动登录并重定向到另一个页面,在该页面上要求他们选择感兴趣的内容,然后从那里将他们重定向到他们的新闻提要。但是我注意到的问题是,firebase仅在重新启动应用程序时才登录用户,这不是我想要的。有人可以指导我这是下面的代码
//注册活动
uname=(EditText)findViewById(R.id.user_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("Users");
signupbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final String txt_uname=uname.getText().toString();
final String txt_email=email.getText().toString();
final String txt_password=password.getText().toString();
if(txt_uname.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()){
Users information=new Users(
txt_uname,
txt_email,
"",
"",
"",
"",
""
);
FirebaseDatabase.getInstance().getReference("Users").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();
if(firebaseAuth != null){
Intent inty=new Intent(RegisterActivity.this,CategoryActivity.class);
startActivity(inty);
}
}
});
}else if(task.getException() instanceof FirebaseAuthUserCollisionException){
email.setError("Email exist");
email.requestFocus();
}
}
});
}
});