Android 使用firebase登录后如何注销?
我正在使用Firebase身份验证在Android中制作一个简单的身份验证应用程序。到目前为止,我成功地登录了该用户,但问题是该用户仍在登录,我无法找到方法将其注销 这是我的MainActivity.java代码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
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));
完成();
}
});
}
}