Фрагмент, не связанный с менеджером фрагментов после входа в Facebook и Firebase - PullRequest
0 голосов
/ 22 октября 2019

Мое приложение имеет два типа входа в систему: электронная почта и 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
                }
            })
 ``

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...