我在Android应用程序中使用Firebase身份验证。 我可以使用他们的Gmail ID或电话号码登录用户。 如果用户已经使用电子邮件ID或ISE登录,我想链接电话号码。 我提到了Firebase Auth documentation for account linking,但他们是手动完成的(手动获取电话号码和OTP)。但是在FirebaseUI的main page上是这样写的
帐户链接-用于跨身份提供者安全链接用户帐户的流。
作为其功能之一。但是没有提到如何使用FirebaseUI进行帐户链接。
这是我到目前为止所做的:
我正在使用这三个功能来登录用户。
public void signInWithAllProviders() {
List<AuthUI.IdpConfig> providers = Arrays.asList(
new AuthUI.IdpConfig.EmailBuilder().build(),
new AuthUI.IdpConfig.PhoneBuilder().build(),
new AuthUI.IdpConfig.GoogleBuilder().build(),
new AuthUI.IdpConfig.FacebookBuilder().build());
startActivityForResult(
AuthUI.getInstance()
.createSignInIntentBuilder()
.setAvailableProviders(providers)
.build(),
RC_SIGN_IN);
}
public void signInWithPhone() {
startActivityForResult(
AuthUI.getInstance().
createSignInIntentBuilder().
setAvailableProviders(Collections.singletonList(new AuthUI.IdpConfig.PhoneBuilder().build())).
build(),
RC_PHONE_SIGN_IN);
}
public void signInWithEmail() {
startActivityForResult(
AuthUI.getInstance().
createSignInIntentBuilder().
setAvailableProviders(Arrays.asList(
new AuthUI.IdpConfig.GoogleBuilder().build(),
new AuthUI.IdpConfig.EmailBuilder().build())).
build(),
RC_EMAIL_SIGN_IN);
}
当用户已经登录时,他尝试使用 通过拨打
signInWithPhone()
来拨打电话号码,FirebaseUI取代了 先前登录的凭据。因此,我无法关联帐户。
我想念什么吗?
答案 0 :(得分:1)
FirebaseUI处理自动帐户链接(启用每封电子邮件一个帐户时)。这涵盖了以下类似情况:
FirebaseUI将支持上述情况,但不支持您尝试将电话号码链接到已登录用户的手动链接。随时在FirebaseUI存储库中提出功能请求。