我正在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();
});
}```
答案 0 :(得分:0)
我想得太多了。 Firebase为您完成工作。经过身份验证的用户信息将保留在Firebase.Auth.FirebaseAuth.DefaultInstance.CurrentUser中。您只需要检查它是否不为null。