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
现在,让我们假设用户更改了他的电话号码,并希望通过登录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和旧帐号(通过电话号码创建)链接起来吗?你能帮忙吗