Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么firebase中的字符串返回null_C#_Firebase_Unity3d_Firebase Authentication - Fatal编程技术网

C# 为什么firebase中的字符串返回null

C# 为什么firebase中的字符串返回null,c#,firebase,unity3d,firebase-authentication,C#,Firebase,Unity3d,Firebase Authentication,当它离开匿名函数时,值返回null,但在它内部,如果它返回我需要获取的id,你知道如何获取string out值吗 firebase函数是一个异步函数,这意味着在异步函数完成之前(在成功或不成功状态下)不会运行内部回调 这意味着您的调试日志实际上是在异步函数的回调运行之前运行的 以下是一些您可以做的选择: using System; public static Action OnSignInSuccess; 让firebase异步函数在准备就绪时调用回调函数 //Anom loggin

当它离开匿名函数时,值返回null,但在它内部,如果它返回我需要获取的id,你知道如何获取string out值吗

firebase函数是一个异步函数,这意味着在异步函数完成之前(在成功或不成功状态下)不会运行内部回调

这意味着您的调试日志实际上是在异步函数的回调运行之前运行的

以下是一些您可以做的选择:

using System;

public static Action OnSignInSuccess;
  • 让firebase异步函数在准备就绪时调用回调函数

    //Anom loggin
        auth.SignInAnonymouslyAsync().ContinueWith(task =>
        {
            if (task.IsCanceled)
            {
                Debug.LogError("SignInAnonymouslyAsync was canceled.");
                return;
            }
            if (task.IsFaulted)
            {
                Debug.LogError("SignInAnonymouslyAsync encountered an error: " + task.Exception);
                return;
            }
    
            Firebase.Auth.FirebaseUser newUser = task.Result;
            Debug.LogFormat("User signed in successfully: {0} ({1})", newUser.DisplayName, newUser.UserId);
    
            userdataString = newUser.UserId;
            Debug.Log("userdatastring: " + userdataString);
        });
    
        Debug.Log("userdatastring out: " + userdataString);
    }
    
    然后在firebase异步回调中,您可以执行以下操作:

    using System;
    
    public static Action OnSignInSuccess;
    
    然后,其他脚本可以通过以下方式订阅和取消订阅此回调事件:

        // ... within auth.SignInAnonymouslyAsync() callback
    
        Firebase.Auth.FirebaseUser newUser = task.Result;
        Debug.LogFormat("User signed in successfully: {0} ({1})", newUser.DisplayName, newUser.UserId);
    
        userdataString = newUser.UserId;
    
        if(OnSignInSuccess != null)
            OnSignInSuccess.Invoke();
    }
    

  • 3b。您还可以创建一个
    公共UnityEvent onSignensAccess
    并像单击
    按钮
    组件的
    onClick
    回调一样对其进行配置;)
    void OnEnable(){
        YourScript.OnSignInSuccess += SignInSuccess;
    }
    
    void OnDisable(){
        YourScript.OnSignInSuccess -= SignInSuccess;
    }
    
    private void SignInSuccess(){
        Debug.Log("userdatastring: " + YourScript.staticInstance.userDataString);
    }