首页 > 解决方案 > 如何在后退按钮上停止 firebase 注销?

问题描述

在你从 stackoverflow 中删除我的问题之前,请听我说完。我知道这个问题很常见,但我尝试过的都没有帮助我。我已经在 stackoverflow 和其他网站上看到了可用的解决方案,但它们并没有解决我的问题。所以即使你选择从这个论坛中删除我的问题,请先帮我解决我的问题,至少给我发邮件。

        button1.setOnClickListener(view -> {
            login();
        });
        
       }
    public void login() {

        Intent intent = new Intent(this, IndexActivity.class);
        String mail = et1.getText().toString();
        String password = et2.getText().toString();

        if (mail.isEmpty()) {
            error.setText(e1);
        } else if (password.isEmpty()) {
            error.setText(e2);
        } else if (password.length() < 6) {
            error.setText("Invalid Password Length!!");
            et2.setError("Password length must be at least 6!!");
        } else {
            mAuth.signInWithEmailAndPassword(mail, password).addOnCompleteListener(task -> {
                if (task.isSuccessful()) {
                    Toast.makeText(MainActivity.this, "Welcome Back",Toast.LENGTH_LONG).show();
                    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
                    startActivity(intent);
                    error.setText("");
                    et1.setText("");
                    et2.setText("");
                }
                else {
                    Toast.makeText(MainActivity.this, " "+ Objects.requireNonNull(task.getException()).getMessage(),Toast.LENGTH_LONG).show();
                    error.setText(e3);
                }
            });
        }

        if (error.getText().toString().isEmpty()) {

            error.setVisibility(View.INVISIBLE);
        } else {
            error.setVisibility(View.VISIBLE);
        }
    }
    
}

以上是我的登录页面

下面是我的孩子活动

logout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (mAuth.getCurrentUser() != null) {
                    Intent intent = new Intent(getApplicationContext(), MainActivity.class);
                    mAuth.signOut();
                    startActivity(intent);
                    finish();
                }
                else {
                    Intent intent = new Intent(getApplicationContext(), MainActivity.class);
                    startActivity(intent);
                }
            }
        });

我已经尝试了互联网上的一切。sharedPreferences、onBackPressed 覆盖、onSaveInstanceState、onRestoreInstanceState、onStart 和 onResume 覆盖,但我不知道具体要使用什么。

标签: javaandroidfirebase-authentication

解决方案


检查用户是否已经登录

if (auth.getCurrentUser() != null)
   //user logged in already, do your work here for logged in user
else
   //user is not logged in, let user login 

推荐阅读