将 Firebase 与 Facebook 登录统一链接

问题描述

我正在尝试为我的 android 游戏设置数据库。 这是我的 Firebase 登录无效:

private void SignInFirebase(Accesstoken accesstoken)
{
    var credential = FacebookAuthProvider.GetCredential(accesstoken.TokenString);
    auth.SignInWithCredentialAsync(credential).ContinueWith(task => {
        if (task.IsCanceled)
        {
            Debug.LogError("SignInWithCredentialAsync was canceled.");
            SignInAction(false);
            return;
        }
        if (task.IsFaulted)
        {
            Debug.LogError("SignInWithCredentialAsync encountered an error: " + task.Exception);
            SignInAction(false);
            return;
        }

        FirebaseUser newUser = task.Result;
        Debug.Log("User loggato come :  { newUser.displayName},{ newUser.UserId}");
        SignInAction(true);

    });
}

身份验证在哪里:

private FirebaseAuth auth;

初始化 void 是:

public async void Initialize()
{
    
    var result = await FirebaseApp.CheckAndFixDependenciesAsync();

    if (result == DependencyStatus.Available)
    {
        app = FirebaseApp.DefaultInstance;
        auth = FirebaseAuth.DefaultInstance;
        auth.StateChanged += AuthOnStateChanged;
        FB.Init(InitCallback,OnHideUnity);
    }
        else
            Debug.Log("errore nel risolvere le dipendenze di Firebase {result}");
}.

基本上,程序以这个函数开始:

public void SignInFacebook()
{
    var perms = new List<string>() { "public_profile","email" };
    FB.LogInWithReadPermissions(perms,OnFacebookLoginResult);
}

调用这个:

private void OnFacebookLoginResult(ILoginResult result)
{
    if (FB.IsLoggedIn)
    {
        var accesstoken = Accesstoken.CurrentAccesstoken;
        SignInFirebase(accesstoken);
    }
    else
    {
        SignInAction(false);
        Debug.Log("login annullato");
    }
}

然后是 SignInFirebase。 问题是我一直收到这个错误

未将对象引用设置为对象的实例。

参考这行代码(在 SignInFirebase void 上):

 auth.SignInWithCredentialAsync(credential).ContinueWith(task => {

我做错了什么?有人可以帮我吗?

我也在用这个函数来初始化 FB:

 private void Awake()
{
    if (!FB.IsInitialized)
    {
        FB.Init(() => {
            if (FB.IsInitialized)
                FB.ActivateApp();
            else
                Debug.LogError("Couldn't Initialized Facebook!");
        },isGameShown => {
                if (!isGameShown)
                    Time.timeScale = 0;
                else
                    Time.timeScale = 1;
            });
    }
    else
    {
        Debug.LogError("Facebook Activate App");
        FB.ActivateApp();
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...