Android 在Firebase身份验证中如何区分signIn和linkWith?

Android 在Firebase身份验证中如何区分signIn和linkWith?,android,firebase,kotlin,firebase-authentication,Android,Firebase,Kotlin,Firebase Authentication,在onActivityResult中,我正在尝试获取凭据并使用Google执行Firebase登录: override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (requestCode == RC_SIGN_IN) { val task = get

onActivityResult
中,我正在尝试获取凭据并使用Google执行Firebase登录:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    if (requestCode == RC_SIGN_IN) {
        val task = getSignedInAccountFromIntent(data)
        try {
            val googleSignInAccount = task.getResult(ApiException::class.java)
            if (googleSignInAccount != null) {
                val googleTokenId = googleSignInAccount.idToken
                val credential = getCredential(googleTokenId, null)
                firebaseSignInWithGoogle(credential)
            }
        } catch (e: ApiException) {
            //Log Exception
        }
    }
}

如您所见,我创建了一个firebaseSignInWithGoogle()函数,该函数被调用以验证用户身份。这个很好用。我还创建了一个linkAccountWithGoogle()函数。当我按下按钮链接帐户时,会调用相同的onActivityResult。我可以获得凭据,但如何区分调用哪个方法?Firebase登录是否使用Google()或链接帐户是否使用Google()?我很难解决这个问题,因为我看不到任何关系。

当同一电子邮件地址已经有一个帐户时,您通常会希望链接帐户

因此:

  • 用谷歌账户的电子邮件地址打电话
  • 如果该电子邮件地址已经有一个帐户,请将谷歌帐户与该帐户链接
  • 如果电子邮件地址还没有帐户,请创建一个新帐户

  • 这就是关系,一个现有的账户。我怎么能不想到呢?谢谢