2016-10-17 68 views
1
mlogbtn.setOnClickListener(new View.OnClickListener(){ 
    @Override 
    public void onClick(View view) { 
     FirebaseAuth.getInstance().signOut(); 
    } 
} 

我試圖按照Firebase的官方文檔並試圖註銷已登錄的用戶。使用Firebase和Android註銷

我做了一個按鈕,並設置了一個onClickListener,它調用註銷功能。但是,問題在於按鈕在點擊時根本沒有任何作用。

是否有替代方法來實現相同的目標還是我遺漏了一些必需的代碼?

+1

請在佈局中添加一些按鈕代碼,並在哪裏設置了「onClickListener」? –

+0

如果該按鈕不響應點擊,問題在於如何附加偵聽器。請編輯您的問題,以包含最小但完整的代碼,以查找並附加聽衆。 –

回答

0

對於註銷: 當您使用auth功能登錄時,它會將auth令牌存儲在設備上的本地存儲中。

所以你可以註銷使用refreance.unauth();

可能這對你的工作,

+0

'unauth()'是Firebase 2.x SDK的註銷方法。 OP正在使用較新的Firebase 3.x/9.x。 –

0

假設你的OnClickListener工程和FirebaseAuth.getInstance()。signOut()被調用,你應該有一個FirebaseAuth.AuthStateListener連接到活動:

private boolean isAuthListenerSet = false; 

private FirebaseAuth.AuthStateListener mAuthListener = new FirebaseAuth.AuthStateListener() { 
    @Override 
    public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { 
     FirebaseUser user = firebaseAuth.getCurrentUser(); 
     if (user != null) { 
      //User is signed in 
     } else { 
      //User is signed out - insert your logic here 
     } 
    } 
}; 

@Override 
protected void onStart() { 
    super.onStart(); 
    if (!isAuthListenerSet) { 
     FirebaseAuth.getInstance().addAuthStateListener(mAuthListener); 
     isAuthListenerSet = true; 
    } 
} 

@Override 
protected void onStop() { 
    super.onStop(); 
    if (mAuthListener != null) { 
     FirebaseAuth.getInstance().removeAuthStateListener(mAuthListener); 
     isAuthListenerSet = false; 
    } 
}