我有一个SignUpFragment,其中使用Firebase进行注册,并且有一个livedata观察器。
SignUpFragment
viewModel.userMediatorLiveData.observe(this, Observer {
Timber.i("Screen", this.javaClass.simpleName)
if (it.status != null && it.message != null) {
btn_sign_up.showSnack(it.message)
if (it.status) {
PreferenceHelper.userPassword = tie_password.getTrimmedText()
returnToLoginScreen()
}
}
})
[当用户成功注册后,我将其导航到登录屏幕,但是在登录屏幕中,还有一个使用相同变量的实时数据观察器。
LoginFragment
// this observer is used also for listening to Firebase Login
viewModel.userMediatorLiveData.observe(this, Observer {
Timber.i("Screen", this.javaClass.simpleName)
if (it.status != null && it.message != null) {
btn_login.showSnack(it.message)
if (it.status) {
PreferenceHelper.userPassword = tie_password.getTrimmedText()
context?.startActivity(HomeActivity::class.java)
requireActivity().finish()
}
}
})
在这里您可以看到这两种情况都成立,并且登录屏幕切换到主屏幕。
我该如何处理这种情况?请注意,我使用[]
private val viewModel: AuthViewModel by activityViewModels()
我有一个SignUpFragment,其中使用Firebase进行注册,并且有一个livedata观察器。 SignUpFragment viewModel.userMediatorLiveData.observe(this,Observer {Timber.i(“ Screen” ...