使用 Unity 和 Firebase 的 Facebook 身份验证:凭据格式错误或已过期
Facebook Authentication using Unity and Firebase: Credential malformed or expired
我看到有些人遇到了这个问题,但 none 的答案实际上对我有帮助。
所以,我正在 unity (2020.1.11f1) 上创建一个应用程序,我正在使用 Firebase 来处理身份验证过程。 Email/Password 身份验证有效,但现在我正在处理 facebook 身份验证,我 运行 陷入了著名的错误:
Firebase.FirebaseException: The supplied auth credential is malformed or has expired
我将我的应用程序登录到 facebook developper 并将其连接到 firebase。我仔细检查了 App ID 和 Secret ID。
此外,我的令牌有效,因为我正在检查其有效性。此外,它知道它来自 facebook。
我正在使用这段代码(来自官方文档):
private void facebook_loginFirebase(string accessToken)
{
//Get firebase authenticator and credential to perform connection
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
Firebase.Auth.Credential credential = Firebase.Auth.FacebookAuthProvider.GetCredential(accessToken);
//Perform Connection
auth.SignInWithCredentialAsync(credential).ContinueWith(task => {
if (task.IsCanceled)
{
Debug.LogError("SignInWithCredentialAsync was canceled.");
popup_manager.openErrorPopup("5010", "Task has been cancelled");
return;
}
if (task.IsFaulted)
{
Debug.LogError("SignInWithCredentialAsync encountered an error: " + task.Exception);
popup_manager.openErrorPopup("5011", "An error happened: " + task.Exception);
return;
}
Firebase.Auth.FirebaseUser newUser = task.Result;
Debug.LogFormat("User signed in successfully: {0} ({1})",
newUser.DisplayName, newUser.UserId);
popup_manager.openInformationPopup("Account created with userID: " + newUser.UserId);
});
}
此外,我正在使用 Facebook SDK 9.0。它似乎与以前的版本有所不同,并且互联网上的所有教程都是基于旧版本的。
您还有其他要检查的提示吗?
提前致谢!如果我需要为您提供更多信息,请告诉我!
我在朋友的帮助下发现了这个错误。
所以基本上,它来自 facebook 开发人员创建的应用程序。创建应用程序时,您可以选择:
- 管理业务集成
- 构建或连接到游戏
- 建立互联体验
- 更多选项
我的游戏适合 android 和 iOS,所以我 select 选择了第二个选项。问题是,我需要第三种选择,因为我的游戏不会在 Facebook 上发布。当您 select 第二个选项时,您的令牌将以 GG 开头,并且在使用 SignInWithCredentialAsync() 时会抛出错误。
这个 link 帮助了我:
https://github.com/firebase/quickstart-unity/issues/826
我看到有些人遇到了这个问题,但 none 的答案实际上对我有帮助。
所以,我正在 unity (2020.1.11f1) 上创建一个应用程序,我正在使用 Firebase 来处理身份验证过程。 Email/Password 身份验证有效,但现在我正在处理 facebook 身份验证,我 运行 陷入了著名的错误:
Firebase.FirebaseException: The supplied auth credential is malformed or has expired
我将我的应用程序登录到 facebook developper 并将其连接到 firebase。我仔细检查了 App ID 和 Secret ID。 此外,我的令牌有效,因为我正在检查其有效性。此外,它知道它来自 facebook。
我正在使用这段代码(来自官方文档):
private void facebook_loginFirebase(string accessToken)
{
//Get firebase authenticator and credential to perform connection
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
Firebase.Auth.Credential credential = Firebase.Auth.FacebookAuthProvider.GetCredential(accessToken);
//Perform Connection
auth.SignInWithCredentialAsync(credential).ContinueWith(task => {
if (task.IsCanceled)
{
Debug.LogError("SignInWithCredentialAsync was canceled.");
popup_manager.openErrorPopup("5010", "Task has been cancelled");
return;
}
if (task.IsFaulted)
{
Debug.LogError("SignInWithCredentialAsync encountered an error: " + task.Exception);
popup_manager.openErrorPopup("5011", "An error happened: " + task.Exception);
return;
}
Firebase.Auth.FirebaseUser newUser = task.Result;
Debug.LogFormat("User signed in successfully: {0} ({1})",
newUser.DisplayName, newUser.UserId);
popup_manager.openInformationPopup("Account created with userID: " + newUser.UserId);
});
}
此外,我正在使用 Facebook SDK 9.0。它似乎与以前的版本有所不同,并且互联网上的所有教程都是基于旧版本的。 您还有其他要检查的提示吗?
提前致谢!如果我需要为您提供更多信息,请告诉我!
我在朋友的帮助下发现了这个错误。 所以基本上,它来自 facebook 开发人员创建的应用程序。创建应用程序时,您可以选择:
- 管理业务集成
- 构建或连接到游戏
- 建立互联体验
- 更多选项
我的游戏适合 android 和 iOS,所以我 select 选择了第二个选项。问题是,我需要第三种选择,因为我的游戏不会在 Facebook 上发布。当您 select 第二个选项时,您的令牌将以 GG 开头,并且在使用 SignInWithCredentialAsync() 时会抛出错误。
这个 link 帮助了我: https://github.com/firebase/quickstart-unity/issues/826