Xamarin:访问局部函数内的值

时间:2018-11-16 20:11:12

标签: ios xamarin firebase-authentication

我正在将Firebase Auth集成到我的应用中。我必须设置一个界面以使用平台特定的代码(iOS和Android)来创建用户。我在iOS“ CreateNewUser”中的界面方法调用了创建新用户的“ Auth.DefaultInstance.CreateUser”方法。如何从本地函数中获取“ userID”变量,作为更大的“ CreateNewUser”函​​数的返回值?

  public string CreateNewUser(string email, string password)
    {
        Console.WriteLine("hhhhh");
        string userId = "";

        Auth.DefaultInstance.CreateUser(email, password,(authResult, error) => {

            Console.WriteLine("idd is " + authResult.User.Uid);
            userId = authResult.User.Uid;

        });

        return userId;

    }

1 个答案:

答案 0 :(得分:1)

我通常使用TaskCompletionSource使其正常工作。

public Task<string> CreateNewUser(string email, string password)
{
    TaskCompletionSource<string> tcs = new TaskCompletionSource<string>(); 

    Auth.DefaultInstance.CreateUser(email, password,(authResult, error) => {

        Console.WriteLine("idd is " + authResult.User.Uid);
        tcs.SetResult(authResult.User.Uid);

    });

    return tcs.Task;
}

然后您可以执行await CreateNewUser("bla","bla");