на странице входа в систему, я использую эти 2 кода ниже:
facebookLoginButton.setOnClickListener {
facebookLoginManager.logInWithReadPermissions(this, Arrays.asList("email", "public_profile"))
}
private fun setUpFacebookLogin() {
facebookLoginManager.registerCallback(callbackManager, object : FacebookCallback<LoginResult> {
override fun onSuccess(loginResult: LoginResult) {
Log.d(TAG, "facebook:onSuccess:$loginResult")
handleFacebookAccessToken(loginResult.accessToken)
}
override fun onCancel() {
Log.d(TAG, "facebook:onCancel")
progressBar.visibility = View.GONE
}
override fun onError(error: FacebookException) {
Log.d(TAG, "facebook:onError", error)
progressBar.visibility = View.GONE
mActivity.longToast("Gagal masuk dengan akun Facebook, silahkan periksa koneksi internet Anda, atau gunakan akun Google atau email yang lain.")
}
})
}
private fun handleFacebookAccessToken(token: AccessToken) {
Log.d(TAG, "handleFacebookAccessToken:$token")
val credential = FacebookAuthProvider.getCredential(token.token)
auth.signInWithCredential(credential).addOnSuccessListener {
Log.d(TAG, "facebook signInWithCredential:success")
val user = auth.currentUser ?: return@addOnSuccessListener
checkUserBasicDataInFirestore(user)
}.addOnFailureListener {exception ->
progressBar.visibility = View.GONE
Log.d(TAG, "facebook signInWithCredential failed: ${exception.localizedMessage}")
mActivity.longToast(exception.localizedMessage)
}
}
На самом деле я могу зарегистрировать пользователя для аутентификации firebase, используя этот код, но у меня проблема при попытке войти через Facebook. auth.signInWithCredential(credential).addOnSuccessListener
на самом деле срабатывает, поэтому я предполагаю, что могу успешно войти в систему, используя facebook на странице входа в систему
, но на другом экране (фрагмент), когда я хочу получить доступ к текущему пользователю, чтобы получить идентификатор пользователя, он всегда равен нулю вот так
val userFirebaseAuth = FirebaseAuth.getInstance().currentUser
Я не понимаю, почему userFirebaseAuth
всегда равно нулю?