2016-10-17 67 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; 
    } 
}