Android 使用signInWithCredential时,如何在Firebase中合并prevUser和currentUser?
原谅我缺乏经验。我试图实现的是:Android 使用signInWithCredential时,如何在Firebase中合并prevUser和currentUser?,android,firebase,kotlin,firebase-authentication,facebook-login,Android,Firebase,Kotlin,Firebase Authentication,Facebook Login,原谅我缺乏经验。我试图实现的是: 用户使用电话号码创建帐户 随后,他将自己的账户链接到facebook 现在,让我们假设用户更改了他的电话号码,并希望通过登录facebook来检索他的帐户 根据这份文件: 我应该能够通过使用以下代码来实现这一点: val prevUser = FirebaseAuth.getInstance().currentUser mAuth.signInWithCredential(credential) .addOnSuccessListener {
- 用户使用电话号码创建帐户
- 随后,他将自己的账户链接到facebook
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\u登录\u按钮。设置读取权限(“电子邮件”、“公共档案”)
facebook\u登录\u按钮。registerCallback(mCallbackManager,对象:
FacebookCallback{
成功时覆盖乐趣(loginResult:loginResult){
mToken=loginResult.accessToken
handleFacebookAccessToken(loginResult.accessToken)
}
重写fun onCancel(){}
重写错误(错误:FacebookException){}
})
私人趣味handleFacebookAccessToken(令牌:AccessToken){
val credential=FacebookAuthProvider.getCredential(token.token)
val prevUser=FirebaseAuth.getInstance().currentUser
mCurrentAuth.signInWithCredential(凭证)
.addOnSuccessListener{result->
val currentUser=result.user
}
.addOnFailureListener{
// ...
}
}
我可以将facebook链接到旧的电话号码(显示在Firebase中)。然后我用不同的电话号码创建一个全新的帐户。然后我登录facebook,这与我在旧手机上使用的帐户相同,但正如我所说,在我单击facebook\u login\u按钮后,当前用户的信息将被先前用户的信息替换。
救命啊 您好,您能将Facebook与旧帐户(通过电话号码创建)链接吗?你能帮我个忙吗?嗨,你能把Facebook和旧帐号(通过电话号码创建)链接起来吗?你能帮忙吗