当我启动我的应用程序时,第一个页面是登录页面,在我成功登录后,新的 Intent 将我带到主菜单,旁边是我的用户名。当我正确地销毁应用程序时,用户名应该存储在主菜单中,但它删除了用户名并且是空的。特此附上我的登录代码。
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();
}
}
});
}
}
最佳答案
用户仍被存储,但我之前所做的是从编辑框中提取用户名,因此当应用程序被销毁并重新启动时,编辑框为空,因为该页面已被跳过。
特此附上解决该问题的代码。
if (firebaseAuth.getCurrentUser() != null)
{
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
startActivity(new Intent(LogIn.this,MainMenu.class).putExtra("UserName",user.getEmail()));
}
if (firebaseAuth.getCurrentUser() == null)
{
}
关于android - 当我的应用程序被销毁时,firebase 不会存储我的用户,它会跳过登录页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54642592/