Unity + Firebase зависает от пользователя. TokenAsync - PullRequest
0 голосов
/ 22 октября 2018

Ниже мой основной блок входа в единство для firebase.Это прекрасно работает, когда я избавляюсь от:
Debug.Log (user.TokenAsync (false) .Result);
Однако из-за безопасности я ДОЛЖЕН иметь способ обрабатывать сеанс.Firebase даже рекомендует, что именно так вы и делаете.Независимо от того, что вы делаете, хотя false или true, приложение зависает и никогда не продолжается.Я неправильно использую tokenasync?
Я также пытался использовать то, что закомментировано:
//StatusText.text = FirebaseAuth.DefaultInstance.CurrentUser.TokenAsync (true) .Result;
, но currentuser возвращает ноль длякакая-то причина

FirebaseUser InvalidVerificationUser;
public void OnLoginButtonPressed()
{
    LoginButton.interactable = false;
    StatusText.text = "Logging in, please wait...";
    FirebaseAuth.DefaultInstance.SignInWithEmailAndPasswordAsync(Email.text, Password.text).ContinueWith((obj) =>
    {
        if (obj.IsFaulted || obj.IsCanceled)
        {
            StatusText.text = obj.Exception.InnerExceptions[0].ToString().Substring(28);
            LoginButton.interactable = true;
            return;
        }
        else if (!obj.Result.IsEmailVerified)
        {
            StatusText.text = "You must verify your email before logging in";
            ResendObject.SetActive(true);
            InvalidVerificationUser = obj.Result;
            LoginButton.interactable = true;
            return;
        }

        FirebaseUser user = obj.Result;
        if (user.DisplayName == "")
        {
            StatusText.text = "CRITICAL: No Username Found!";
        }
        else
            StatusText.text = "Hello: " + user.DisplayName;
        LoginButton.interactable = true;
        Debug.Log(user.TokenAsync(false).Result);
    });
    //StatusText.text = FirebaseAuth.DefaultInstance.CurrentUser.TokenAsync(true).Result;
}

1 Ответ

0 голосов
/ 16 мая 2019

У меня возникла та же проблема с SignInAnonymouslyAsync зависанием клиента Unity, и я обошел его, ожидая как SignInAnonymouslyAsync, так и TokenAsync.

Что-то подобное может помочь вам:

FirebaseUser firebaseUser = await AuthDefaultInstance.SignInWithEmailAndPasswordAsync(Email.text, Password.text);

if (!firebaseUser.IsEmailVerified)
{
    // do stuff here
}
else if (firebaseUser.DisplayName == string.Empty)
{
    // do stuff here
}
else
{
    string token = await firebaseUser.TokenAsync(true);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...