Простите за отсутствие опыта.Я пытаюсь добиться этого:
- Пользователь создает учетную запись с номером телефона
- , а затем связывает свою учетную запись с Facebook.
Теперь давайте предположим, что пользователь меняет свой номер телефона и хочет получить свою учетную запись, войдя в систему на Facebook.
В соответствии с этим документом: https://firebase.google.com/docs/auth/android/account-linking Я смогу сделать это, используяследующий код:
val prevUser = FirebaseAuth.getInstance().currentUser
mAuth.signInWithCredential(credential)
.addOnSuccessListener { result ->
val currentUser = result.user
// Merge prevUser and currentUser accounts and data
// ...
}
.addOnFailureListener {
// ...
}
Однако prevUser
и currentUser
всегда получают старый номер телефона.Что я делаю не так?
Мой код таков:
facebook_login_button.setReadPermissions("email", "public_profile")
facebook_login_button.registerCallback(mCallbackManager, object:
FacebookCallback<LoginResult> {
override fun onSuccess(loginResult: LoginResult) {
mToken = loginResult.accessToken
handleFacebookAccessToken(loginResult.accessToken)
}
override fun onCancel() {}
override fun onError(error: FacebookException) {}
})
private fun handleFacebookAccessToken(token: AccessToken) {
val credential = FacebookAuthProvider.getCredential(token.token)
val prevUser = FirebaseAuth.getInstance().currentUser
mCurrentAuth.signInWithCredential(credential)
.addOnSuccessListener { result ->
val currentUser = result.user
}
.addOnFailureListener {
// ...
}
}
Я могу связать Facebook со старым номером телефона (который отображается в Firebase).Затем я использую другой телефон с другим номером, чтобы создать новый аккаунт.Затем я вхожу на Facebook, который является той же учетной записью, которую я использовал на старом телефоне, но, как я уже сказал, информация currentUser заменяется информацией prevUser после того, как я нажимаю facebook_login_button
.Помогите пожалуйста!