如何登录最初通过电话号码身份验证进行注册的Firebase用户

时间:2019-07-18 15:25:10

标签: unity3d firebase-authentication

我正在Unity应用程序中实现Firebase电话号码身份验证。我能够使用通过SMS收到的电话号码和验证码来验证,创建和登录Firebase用户。

但是,SMS代码是一次性使用的,我不知道如何在用户下次运行应用程序时自动登录。

我尝试保存验证ID和代码,并使用初始验证详细信息重新登录,但Firebase指出代码已按预期过期。

    {
        PhoneAuthProvider provider = PhoneAuthProvider.GetInstance(firebaseAuth);
        Credential credential =
            provider.GetCredential(PlayerPrefs.GetString("FirebaseVerificationId"), PlayerPrefs.GetString("FirebaseVerificationCode") );

        firebaseAuth.SignInWithCredentialAsync(credential).ContinueWith(task => {
            if (task.IsFaulted)
            {
                Debug.LogError("SignInWithCredentialAsync encountered an error: " +
                               task.Exception);
                return;
            }

            FirebaseUser newUser = task.Result;
            Global.Instance.firebaseUser = newUser;
            Debug.Log("User signed in successfully");
            // This should display the phone number.
            Debug.Log("Phone number: " + newUser.PhoneNumber);
            // The phone number providerID is 'phone'.
            Debug.Log("Phone provider ID: " + newUser.ProviderId);
            PostSignIn();
        });
    }```

1 个答案:

答案 0 :(得分:0)

我想得太多了。 Firebase为您完成工作。经过身份验证的用户信息将保留在Firebase.Auth.FirebaseAuth.DefaultInstance.CurrentUser中。您只需要检查它是否不为null。