繁体   English   中英

Unity-将Firebase与Facebook登录一起使用时,SignInWithCredentialAsync导致内部错误

[英]Unity - SignInWithCredentialAsync causes internal error when using Firebase with Facebook Login

我是Unity程序员,正在使用Firebase来管理用户帐户。 我试图设置Facebook登录名。 Facebook sdk没问题,我可以成功登录。 但是,当将Facebook sdk返回的凭据用作FirebaseAuth.DefaultInstance.SignInWithCredentialAsync的参数时,它将返回内部错误。

在此处输入图片说明

这是我的代码:

void authCallBack(IResult result) {
    if (result.Error != null) {
        Debug.Log(result.Error);
    }
    else {
        if (FB.IsLoggedIn) {
            Debug.Log("Log in successfully.");
            AccessToken token = AccessToken.CurrentAccessToken;
            Credential credential = FacebookAuthProvider.GetCredential(token.TokenString);
            accessToken(credential);
        }
        else
            Debug.Log("not logged in");
    }
}

public void accessToken(Credential firebaseResult) {
    FirebaseAuth auth = FirebaseAuth.DefaultInstance;
    Debug.Log("Auth CurrentUser: " + FirebaseAuth.DefaultInstance.CurrentUser);
    if (!FB.IsLoggedIn){
        return;
    }
    if (auth.CurrentUser != null && !string.IsNullOrEmpty(auth.CurrentUser.UserId)){
        Debug.Log("CurrentUser ID: " + auth.CurrentUser.UserId);
        auth.CurrentUser.LinkAndRetrieveDataWithCredentialAsync(firebaseResult).ContinueWith(task =>
        {
            if (task.IsCanceled || task.IsFaulted)
            {
                Debug.LogError("LinkWithCredentialAsync encountered an error: " + task.Exception);
                // TODO: Show error message to player
                return;
            }

            FirebaseUser newUser = task.Result.User;
            Debug.LogFormat("Credentials successfully linked to Firebase user: {0} ({1})",
                newUser.DisplayName, newUser.UserId);
        });
    } else {
        auth.SignInWithCredentialAsync(firebaseResult).ContinueWith(task =>
        {
            if (task.IsCanceled || task.IsFaulted) {
                Debug.LogError("SignInWithCredentialAsync encountered an error: " + task.Exception.InnerExceptions[0].Message);
                // TODO: Show error message to player
                return;
            }
            FirebaseUser newUser = task.Result;
            Debug.LogFormat("Credentials successfully created Firebase user: {0} ({1})",
                newUser.DisplayName, newUser.UserId);
        });
    }
}

VS调试中的更多详细信息:

在此处输入图片说明

当我在Android设备上对其进行测试时,只会显示一条错误消息g_methods_cached

在此处输入图片说明

有人可以帮忙吗?

PS:这是昨天又问的另一个问题,我不知道这是否相关。 找不到FirebaseAuthWebException。 请验证AAR

哦,我犯了一个愚蠢的错误!

在Facebook Developer页面中,在设置>基本中有应用程序秘诀。 并且必须使用App ID将其添加到Firebase控制台。 现在没问题。 接着......

我只是复制了“应用秘密”,没有显示并粘贴到Firebase控制台中。

这表示我在Firebase控制台中将8个黑点(●●●●●●●●)设置为我的应用程序密码。 我知道这太傻了。 但是以防万一有人像我这样粗心。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM