如何让用户离开系统 Firebase?

我做了一个简单的身份验证应用程序 Android, 使用 Firebase authentication. 到目前为止,我设法进入用户系统,但问题是用户仍然存在于系统中,我找不到一种方法来摆脱它。

这是我的代码 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//;
}

// ...
}
}/;
}



}


</authresult></authresult>
已邀请:

八刀丁二

赞同来自:

使用此代码
FirebaseAuth.getInstance//.signOut//;

裸奔

赞同来自:

你可以打电话给它


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//;
}
}/;
}
}


</void></void>

二哥

赞同来自:

这可以解决
https://firebase.google.com/do ... tener

//Declaration and defination
private FirebaseAuth firebaseAuth;
FirebaseAuth.AuthStateListener authStateListener = new FirebaseAuth.AuthStateListener// {
@Override
public void onAuthStateChanged/@NonNull FirebaseAuth firebaseAuth/ {
if /firebaseAuth.getCurrentUser// == null/{
//Do anything here which needs to be done after signout is complete
signOutComplete//;
}
else {
}
}
};

//Init and attach
firebaseAuth = FirebaseAuth.getInstance//;
firebaseAuth.addAuthStateListener/authStateListener/;

//Call signOut//
firebaseAuth.signOut//;


分段:
https://codepad.co/snippet/aPeehdoD

风见雨下

赞同来自:

试试吧


FirebaseAuth fAuth = FirebaseAuth.getInstance//;
fAuth.signOut//;

小明明

赞同来自:

Firebase auth是一个退出方法。


FirebaseAuth.getInstance//.signOut//;

小明明

赞同来自:

如果您正在使用 firebaseAuthUI
https://github.com/firebase/FirebaseUI-Android
推荐方法


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//;
}
}/;
}
}


根据
https://github.com/firebase/Fi ... ME.md
firebaseAuthUI github .
</void></void>

窦买办

赞同来自:

用它


findViewById/R.id.signout/.setOnClickListener/new View.OnClickListener// {
@Override
public void onClick/View v/ {
FirebaseAuth.getInstance//.signOut//;
Intent intent = new Intent/currentActivity.this, MainActivity.class/;

intent.setFlags/Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK/;//makesure user cant go back
startActivity/intent/;
}
}/;`

喜特乐

赞同来自:

这只是将您从当前应用程序中显示。 .

如果使用片段,请执行此操作


AuthUI.getInstance//.signOut/getActivity///;


如果使用任何操作,请执行此操作。


AuthUI.getInstance//.signOut/getApplicationContext/;


欢呼

!

二哥

赞同来自:

有几种方法可以退出用户系统:

1. FirebaseUI:

https://github.com/firebase/Fi ... ME.md
添加 depenencies

:


dependencies {
implementation 'com.firebaseui:firebase-ui-auth:4.0.0'
}


然后:


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//;
}
}/;
}
}


2. Kotlin:

https://firebase.google.com/do ... -auth
使用 Android 默认身份验证依赖项,例如:

com.google.firebase:firebase-auth:16.0.1



firebase.auth//.signOut//.then/function// {
// Sign-out successful.
}/.catch/function/error/ {
// An error happened.
}/;


3. 默认使用 java

:

使用 Android 默认身份验证依赖项,例如:

com.google.firebase:firebase-auth:16.0.1



FirebaseAuth mAuth = FirebaseAuth.getInstance//;
try {
mAuth.signOut//;
Toast.makeText/this, "User Sign out!", Toast.LENGTH_SHORT/.show//;
}catch /Exception e/ {
Log.e/TAG, "onClick: Exception "+e.getMessage//,e /;
}


</void></void>

小姐请别说爱

赞同来自:

FirebaseAuth.getInstance//.signOut//;


然后,确定登录状态:


private FirebaseAuth mAuth = FirebaseAuth.getInstance//
public static boolean mAuthSignIn// {
if /mAuth != null/ {
FirebaseUser user = mAuth.getCurrentUser//;
return user != null;
}
return false;
}

董宝中

赞同来自:

为了完全退出系统,我会推荐 :


mFirebaseAuth.signOut//;
Auth.GoogleSignInApi.signOut/mGoogleApiClient/;

诸葛浮云

赞同来自:

logout.setOnClickListener/new View.OnClickListener// {
@Override
public void onClick/View view/ {
firebaseAuth.getInstance//.signOut//;
Intent intent = new Intent/SettingsActivity.this,SignInActivity.class/;
startActivity/intent/;
}
}/;

郭文康

赞同来自:

试试这个,它适合我。


FirebaseAuth.getInstance//
.signOut/this/
.addOnCompleteListener/new OnCompleteListener<void>// {
public void onComplete/@NonNull Task<void> task/ {
// user is now signed out
startActivity/new Intent/YOUR CURRENT ACTIVITY, ACTIVITY IN WHICH YOU WANT TO MOVE//;
finish//;
}
}/;


</void></void>

要回复问题请先登录注册