【发布时间】:2021-01-04 21:42:50
【问题描述】:
我正在尝试在 Unity3d 应用程序中使用 Facebook 提供程序实现 Firebase 身份验证。
Unity 版本 2020.2.0f1 火力基地 7.0.2 脸书 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
我的脸书设置https://prnt.sc/wga527
凭据仅包含提供者字段。我认为这是一个问题https://prnt.sc/wg9zxv 我怎样才能解决这个问题? 谢谢!
【问题讨论】: