当我启动我的应用程序时,第一页是登录名,在我成功登录后,新的意图将我带到用户名旁边的主菜单。当我直接销毁应用程序时,用户名应存储在主菜单中,但它将删除用户名,并且为空。特此附上我的登录代码。
private EditText PasswdEdit;
private EditText EmailEdit;
private Button LoginBtn;
private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener mAuthStateListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_log_in);
mAuth = FirebaseAuth.getInstance();
PasswdEdit = findViewById(R.id.PasswdEdit);
EmailEdit = findViewById(R.id.EmailEdit);
LoginBtn = findViewById(R.id.LoginBtn);
mAuthStateListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
if (firebaseAuth.getCurrentUser() != null)
{
startActivity(new Intent(LogIn.this,MainMenu.class).putExtra("UserName",EmailEdit.getText().toString()));
}
}
};
LoginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startSingIn();
}
});
}
@Override
protected void onStart() {
super.onStart();
mAuth.addAuthStateListener(mAuthStateListener);
}
@Override
public void onBackPressed() {
}
private void startSingIn (){
String email = EmailEdit.getText().toString();
String passwd = PasswdEdit.getText().toString ();
if(TextUtils.isEmpty(email) || TextUtils.isEmpty(passwd))
{
Toast.makeText(LogIn.this,"Fields are empty",Toast.LENGTH_LONG).show ();
}
else
{
mAuth.signInWithEmailAndPassword(email,passwd).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(!task.isSuccessful()){
Toast.makeText(LogIn.this,"Please check your credentials",Toast.LENGTH_LONG).show ();
}
if (task.isSuccessful()) {
FirebaseUser userLogIn = mAuth.getCurrentUser();
}
}
});
}
}
答案 0 :(得分:0)
用户仍处于存储状态,但是我之前所做的是我从编辑框中提取了用户名,因此当应用程序被销毁并重新启动时,编辑框为空,因为该页面被跳过了。
在这里,我已附加了代码来克服此问题。
if (firebaseAuth.getCurrentUser() != null)
{
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
startActivity(new Intent(LogIn.this,MainMenu.class).putExtra("UserName",user.getEmail()));
}
if (firebaseAuth.getCurrentUser() == null)
{
}