在 MVVM 中使用 Firebase 注销的正确方法 android
The proper way to signOut using Firebase in MVVM android
我在项目中使用了 firebase 和 firestore。我还使用带有导航组件的单个 activity 架构。当我注销时,我的 SharedViewModel 中仍然有一些活跃的侦听器。我的片段正在调用这样的注销方法:
FirebaseAuth.getInstance().signOut()
navController.navigateToLoginActivity()
这样做是首先退出 firebase,然后开始我的登录 activity 并销毁我当前的 activity。所有的 firebase 侦听器都是 disposed/canceled in viewModel.onCleared(),但这发生在注销之后,所以我得到了一些错误。这是应该如何工作还是我遗漏了什么?
如果您注销用户,您在需要身份验证的查询上打开的任何侦听器都将立即被切断。这完全是意料之中的。如果您不喜欢看到这些错误,我建议您在注销之前先编写代码来删除所有这些侦听器。虽然这不是必需的,但它会在您的代码中明确说明预期会发生什么。
我在项目中使用了 firebase 和 firestore。我还使用带有导航组件的单个 activity 架构。当我注销时,我的 SharedViewModel 中仍然有一些活跃的侦听器。我的片段正在调用这样的注销方法:
FirebaseAuth.getInstance().signOut()
navController.navigateToLoginActivity()
这样做是首先退出 firebase,然后开始我的登录 activity 并销毁我当前的 activity。所有的 firebase 侦听器都是 disposed/canceled in viewModel.onCleared(),但这发生在注销之后,所以我得到了一些错误。这是应该如何工作还是我遗漏了什么?
如果您注销用户,您在需要身份验证的查询上打开的任何侦听器都将立即被切断。这完全是意料之中的。如果您不喜欢看到这些错误,我建议您在注销之前先编写代码来删除所有这些侦听器。虽然这不是必需的,但它会在您的代码中明确说明预期会发生什么。