【问题标题】:Firebase database and Android - How to destroy 'session' on logout?Firebase 数据库和 Android - 如何在注销时销毁“会话”?
【发布时间】:2018-06-20 02:57:18
【问题描述】:

我的 android 应用程序有一个退出导航项,单击时,它将用户重定向到登录活动。

如何确保“会话”被销毁?我问这个是因为我在登录活动中有这段代码,它检查用户是否登录(没有注销,而是关闭了应用程序)。如果它已登录,它会重定向到 MainActivity 而不是 LoginActivity:

private void setupFirebaseListener() {
mAuthListener = new FirebaseAuth.AuthStateListener() {
 @Override
 public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
  FirebaseUser user = firebaseAuth.getCurrentUser();
  if (user != null) {
   startActivity(new Intent(MainActivity.this, MainActivity.class));
  } else {
   Intent intent = new Intent(MainActivity.this, LoginActivity.class);
   intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 
Intent.FLAG_ACTIVITY_CLEAR_TASK);
   startActivity(intent);
   }
  }
 };
};

@Override
public void onStart() {
 super.onStart();
 FirebaseAuth.getInstance().addAuthStateListener(mAuthListener);
}
@Override
public void onStop() {
 if (mAuthListener != null) {
  FirebaseAuth.getInstance().removeAuthStateListener(mAuthListener);
 }
 super.onStop();
}

我将始终被重定向到 MainActivity(截至目前),因为“会话”不会在注销时被破坏(当然,我没有实现它,因为我不知道如何实现,因此问题) .

【问题讨论】:

  • 我在您的代码中没有看到任何名为“会话”的内容。你从哪里得到会话的概念?
  • @DougStevenson 这就是为什么我把它放在引号里,这样人们就可以马上明白我的意思。而且,我有更多的网络开发人员。背景。 Android 和 Firebase 数据库的情况有所不同,这是我目前发现的!

标签: java android firebase firebase-realtime-database firebase-authentication


【解决方案1】:

如果您希望用户退出,您需要致电signOut

FirebaseAuth.getInstance().signOut();

另见Firebase documentation

【讨论】:

  • 太棒了。由于某些原因,我检查了更复杂的东西,但这很容易,呵呵。谢谢!
猜你喜欢
  • 1970-01-01
  • 2014-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-21
  • 1970-01-01
相关资源
最近更新 更多