Firebase unity android app身份验证不起作用

问题描述 投票:0回答:1

问题:当我使用Firebase控制台手动创建用户时,无法在我的统一应用中使用该新帐户登录,错误为UserNotFound。但是,当我使用我的统一应用程序注册用户时,我可以成功登录。

这是我的代码,有人可以看到任何错误吗?

using Firebase.Auth;
using UnityEngine.SceneManagement;
using TMPro;

public class SignInScript : MonoBehaviour
{
    public TextMeshProUGUI emailInput, passwordInput;

    public void Login(){
        FirebaseAuth.DefaultInstance.SignInWithEmailAndPasswordAsync(emailInput.text,passwordInput.text).ContinueWith((task=>{
            if(task.IsFaulted){
                Firebase.FirebaseException e = task.Exception.Flatten().InnerExceptions[0]
                    as Firebase.FirebaseException;
                print(emailInput.text);

                PrintErrorMessage((AuthError)e.ErrorCode);
                return;
            }
            if(task.IsCompleted){
                // print("User is LoGGed IN");
                //SceneChange();
                SceneManager.LoadScene("homeScene");
            }
        }));
    }

    public void RegisterUser(){
        if(emailInput.text.Equals("") || passwordInput.text.Equals("")){
            print("Please Enter a Email AND Pass to Register");
            return;
        }

        FirebaseAuth.DefaultInstance.CreateUserWithEmailAndPasswordAsync(emailInput.text,passwordInput.text).ContinueWith((task=>{ 
            if(task.IsCompleted){
                print("Registration Complete");
            } else {
                print("Registration Failed");
            }
        }));
    }

    void PrintErrorMessage(AuthError errorCode){
        string msg="";
        msg = errorCode.ToString();

        print(msg);
    }
}
android firebase unity3d google-cloud-firestore firebase-authentication
1个回答
0
投票

我不能说这是问题所在,但是在RegisterUser中您正在检查task.IsCompleted。任务是否成功或失败始终为true(我经常使用yield return new WaitUntil(()=>task.IsCompleted);等待Unity协程中的异步调用)。

我怀疑您可能没有:

已启用的电子邮件和密码:Screenshot of Email/Password authentication enabled

Downloaded your google-services.json文件。

uploaded your SHA-1

此外,如果您要在移动设备上进行测试,那么移动键盘肯定会给您的密码增加额外的空间(特别是如果您没有配置输入类型的话)。如果您已完成上面列出的所有其他操作,请在键入用户名或密码后尝试删除其中一个字符,以查看是否可以使用。

最后,如果您需要任何一个视觉演练。我创建了一个Getting started with Firebase Authentication in Unity video

© www.soinside.com 2019 - 2024. All rights reserved.