firebase - Firebase 身份验证 Unity3d。提供的身份验证凭据格式错误或已过期
问题描述
我正在尝试在 Unity3d 应用程序中使用 Facebook 提供程序实现 Firebase 身份验证。
Unity 版本 2020.2.0f1 Firebase 7.0.2 Facebook 8.1.1
这是我的代码。
private void Awake()
{
if (!FB.IsInitialized)
{
FB.Init(InitCallback, OnApplicationPause);
}
else
{
FB.ActivateApp();
}
}
public void FBLogin()
{
var permissions = new List<string> {
"public_profile",
"gaming_profile",
"email",
};
FB.LogInWithReadPermissions(permissions, AuthCallback);
}
private void AuthCallback(ILoginResult result)
{
if (result.Error != null)
{
Debug.LogFormat("Facebook SDK error: {0}", result.Error);
}
else if (FB.IsLoggedIn)
{
var aToken = AccessToken.CurrentAccessToken;
foreach (string permission in aToken.Permissions)
{
Debug.Log(permission);
}
Debug.Log(" " + aToken.TokenString);
Services.GetManager<FirebaseAuthService>().SugnUpFB(aToken.TokenString);
}
else
{
Debug.Log("Facebook login was cancelled.");
}
}
private void InitCallback()
{
if (FB.IsInitialized)
{
FB.ActivateApp();
}
else
{
Debug.Log("Failed FB SDK init.");
}
}
private void OnApplicationPause(bool pauseStatus)
{
if (!pauseStatus)
{
if (FB.IsInitialized)
{
FB.ActivateApp();
}
else
{
FB.Init(() => {
FB.ActivateApp();
});
}
}
}
Firebase 代码
public void SugnUpFB(string token)
{
Debug.Log("token " + token);
Credential credential = FacebookAuthProvider.GetCredential(token);
auth.SignInWithCredentialAsync(credential).ContinueWith(task =>
{
if (task.IsCanceled)
{
Debug.LogError("SignInWithCredentialAsync was canceled.");
return;
}
if (task.IsFaulted)
{
Debug.LogError("SignInWithCredentialAsync encountered an error: " + task.Exception);
return;
}
FirebaseUser newUser = task.Result;
Debug.LogFormat("User signed in successfully: {0} ({1})",
newUser.DisplayName, newUser.UserId);
});
}
我收到此错误https://prnt.sc/wg9xrr
我的 fb 设置https://prnt.sc/wga527
凭据仅包含提供者字段。我认为这是一个问题https://prnt.sc/wg9zxv 我该如何解决这个问题?谢谢!
解决方案
如果您使用的是 Graph API,那么其无意义的 Firebase Oauth 登录支持正常的 Facebook 登录,但不支持单独的游戏登录, 原因
推荐阅读
- linux - 在 ss -s 中,内核计数器实际计数是多少?
- javascript - 如何将此 addEventListener 更改为单击按钮
- regex - 正则表达式检查某些扩展名或没有扩展名,并且只有 0-9、az 和连字符
- spring-integration - Spring 集成 - 带有轮询器的 @ServiceActivator
- javascript - 调用点击函数时如何更改变量值?
- laravel - 如何在 Laravel Collection 上使用 OR
- angular - 角度字符串枚举作为参数如何在视图中调用
- django - 在服务器中显示类似 [Errno 5] 输入/输出错误的错误
- linux - 创建新的 linux 用户时 Postgre 数据库致命错误
- azure - 存储在 Azure Data Lake 中的 Oozie 文件或存档标记引用文件