Android 使用firebase登录后如何注销?

Android 使用firebase登录后如何注销?,android,firebase,firebase-authentication,Android,Firebase,Firebase Authentication,我正在使用Firebase身份验证在Android中制作一个简单的身份验证应用程序。到目前为止,我成功地登录了该用户,但问题是该用户仍在登录,我无法找到方法将其注销 这是我的MainActivity.java代码 public class MainActivity extends AppCompatActivity { private FirebaseAuth mAuth; private FirebaseAuth.AuthStateListener mAuthListener; @Over

我正在使用Firebase身份验证在Android中制作一个简单的身份验证应用程序。到目前为止,我成功地登录了该用户,但问题是该用户仍在登录,我无法找到方法将其注销

这是我的MainActivity.java代码

public class MainActivity extends AppCompatActivity {

private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener mAuthListener;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //tracking the sign in and singn out operations
    mAuth = FirebaseAuth.getInstance();
    mAuthListener = new FirebaseAuth.AuthStateListener(){
        @Override
        public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
            FirebaseUser user = firebaseAuth.getCurrentUser();
            if (user!=null){
                System.out.println("User logged in");
            }
            else{
                System.out.println("User not logged in");
            }
        }
    };
}


public void onStart(){
    super.onStart();
    mAuth.addAuthStateListener(mAuthListener);
}
public void onStop(){
    super.onStop();
    if (mAuthListener != null) {
        mAuth.removeAuthStateListener(mAuthListener);

    }
}


public void buttonClicked(View view){

    EditText editemail = (EditText) findViewById(R.id.email);
    EditText editpass = (EditText) findViewById(R.id.password);

    String email = editemail.getText().toString();
    String password = editpass.getText().toString();


    mAuth.signInWithEmailAndPassword(email, password)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                 //   Log.d(TAG, "signInWithEmail:onComplete:" + task.isSuccessful());
                    Toast.makeText(MainActivity.this, "Authentication Success.",
                            Toast.LENGTH_SHORT).show();
                    startActivity(new Intent(MainActivity.this,Success.class));
                    // If sign in fails, display a message to the user. If sign in succeeds
                    // the auth state listener will be notified and logic to handle the
                    // signed in user can be handled in the listener.
                    if (!task.isSuccessful()) {
                       // Log.w(TAG, "signInWithEmail", task.getException());
                        Toast.makeText(MainActivity.this, "Authentication failed.",
                                Toast.LENGTH_SHORT).show();
                    }

                    // ...
                }
            });
}}
public类MainActivity扩展了AppCompatActivity{
私人消防队;
私有FirebaseAuth.AuthStateListener mAuthListener;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//跟踪登录和签出操作
mAuth=FirebaseAuth.getInstance();
mAuthListener=new FirebaseAuth.AuthStateListener(){
@凌驾
AuthStateChanged上的公共void(@NonNull FirebaseAuth FirebaseAuth){
FirebaseUser=firebaseAuth.getCurrentUser();
如果(用户!=null){
System.out.println(“用户登录”);
}
否则{
System.out.println(“用户未登录”);
}
}
};
}
public void onStart(){
super.onStart();
mAuth.addAuthStateListener(mAuthListener);
}
公共void onStop(){
super.onStop();
if(mAuthListener!=null){
removeAuthStateListener(mAuthListener);
}
}
公共作废按钮勾选(查看){
EditText editemail=(EditText)findViewById(R.id.email);
EditText editpass=(EditText)findViewById(R.id.password);
字符串email=editemail.getText().toString();
字符串密码=editpass.getText().toString();
mAuth.使用电子邮件和密码登录(电子邮件,密码)
.addOnCompleteListener(这是新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
//Log.d(标记“signInWithEmail:onComplete:+task.isSuccessful()”);
Toast.makeText(MainActivity.this,“身份验证成功”,
吐司。长度(短)。show();
startActivity(新意图(MainActivity.this,Success.class));
//如果登录失败,则向用户显示消息。如果登录成功
//将通知身份验证状态侦听器,并使用逻辑来处理
//可以在侦听器中处理已登录用户。
如果(!task.issusccessful()){
//w(标记“signInWithEmail”,task.getException());
Toast.makeText(MainActivity.this,“身份验证失败”,
吐司。长度(短)。show();
}
// ...
}
});
}}

您可以简单地称之为

FirebaseAuth.getInstance().signOut();
如果您想在注销后执行某些操作,请使用此操作

public void onClick(View v) {
if (v.getId() == R.id.sign_out) {
    AuthUI.getInstance()
        .signOut(this)
        .addOnCompleteListener(new OnCompleteListener<Void>() {
            public void onComplete(@NonNull Task<Void> task) {
                // user is now signed out
                startActivity(new Intent(MyActivity.this, SignInActivity.class));
                finish();
            }
        });
    }
}
public void onClick(视图v){
if(v.getId()==R.id.sign\u){
AuthUI.getInstance()
.登出(本)
.addOnCompleteListener(新的OnCompleteListener(){
未完成的公共void(@NonNull任务){
//用户现在已注销
startActivity(新意图(MyActivity.this,SignInActivity.class));
完成();
}
});
}
}