FirebaseAuth onAuthStateChanged始终在应用启动时启动

时间:2019-06-10 10:48:57

标签: java android firebase firebase-authentication

我希望在我的应用程序中的用户状态更改时得到通知。我的意思是,它什么时候才登录和什么时候才注销。我不希望在刷新用户令牌或每次启动应用程序并自动登录时收到通知。

我正在为此使用预期的处理程序:

FirebaseAuth.getInstance().addAuthStateListener(new FirebaseAuth.AuthStateListener() {
            @Override
            public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
                FirebaseUser user = firebaseAuth.getCurrentUser();
                if (user == null) {
                    _restUserDataAndUI();
                } else
                    _refreshUserDataAndUI();
            }
        });

问题在于,每次启动我的应用程序以及用户令牌更改时,它都会启动。

有什么办法可以避免这种情况?

1 个答案:

答案 0 :(得分:1)

FirebaseAuth的addAuthStateListener ()方法:

  

注册一个侦听器以更改用户身份验证状态。

     

在以下事件中,侦听器在UI线程中回调:

     
      
  • 注册收听者之后
  •   
  • 用户登录时
  •   
  • 当前用户退出时
  •   
  • 当前用户更改时
  •   

更改此行为的唯一方法是使用removeAuthStateListener(AuthStateListener)取消注册侦听器。