如何将Firebase电话身份验证与电子邮件/密码身份验证关联?

Dar*_*dow 6 android firebase firebase-authentication

我正在尝试创建一个应用程序,其中在用户键入电子邮件/密码后将其保存在Firebase中,然后用户输入发送otp的电话号码,并在验证后登录用户。我的问题是当两个这些步骤已完成Firebase正在使用电话创建两个单独的帐户,一个帐户与电子邮件。请告诉我如何使用电子邮件/密码和电话创建一个帐户。

Pet*_*dad 4

由于您使用多个 Firebase 身份验证提供商,因此您需要链接它们,因此电话和电子邮件都将在单个帐户上创建。

首先您可以获得凭据:

AuthCredential credential = EmailAuthProvider.getCredential(email, password);
Run Code Online (Sandbox Code Playgroud)

然后使用linkwithCredentials()您将能够链接它们:

mAuth.getCurrentUser().linkWithCredential(credential)
    .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            if (task.isSuccessful()) {
                Log.d(TAG, "linkWithCredential:success");
                FirebaseUser user = task.getResult().getUser();
                updateUI(user);
            } else {
                Log.w(TAG, "linkWithCredential:failure", task.getException());
                Toast.makeText(AnonymousAuthActivity.this, "Authentication failed.",
                        Toast.LENGTH_SHORT).show();
                updateUI(null);
            }

            // ...
        }
    });
Run Code Online (Sandbox Code Playgroud)

更多信息在这里:

https://firebase.google.com/docs/auth/android/account-linking