Мое приложение имеет два типа входа в систему: электронная почта и Facebook. Оба используют firebase auth. При входе по электронной почте проблем не возникает, но иногда (около 5% от общего числа) некоторые из моих пользователей получают сбой после входа в Facebook в части кода NavHostFragment.findNavController.navigate. Сообщение об ошибке: фрагмент XXX {bb6f643} не связан с менеджером фрагментов.
часть кода:
object : FacebookCallback<LoginResult> {
override fun onSuccess(loginResult: LoginResult) {
val accessToken = loginResult.accessToken.token
val credential = FacebookAuthProvider.getCredential(accessToken)
val request = GraphRequest.newMeRequest(
loginResult.accessToken,
GraphRequest.GraphJSONObjectCallback { `object`, response ->
nombre = `object`.getString("first_name")
if (`object`.has("email")){
correo = `object`.getString("email")
} else {
correo = ""
}
var idFacebook = `object`.getString("id")
urlFotoFB = "http://graph.facebook.com/$idFacebook/picture?type=large"
//HERE I CREATE THE USER IN FIREBASE
mAuth.signInWithCredential(credential)
.addOnCompleteListener { task ->
if (task.isSuccessful) {
val user = mAuth.currentUser
//here i save the user information in local realm
crearUsuario()
//HERE HAPPENS THE CRASH
Navigation.findNavController(this.view!!).navigate(R.id.toPrincipal)
}
}
})
val parameters = Bundle()
parameters.putString("fields", "email,name,first_name")
request.parameters = parameters
request.executeAsync()
}
override fun onCancel() {
// App code
}
override fun onError(exception: FacebookException) {
// App code
}
})
``