2015-12-06 4 views
1

*** Я разработал то, что вызывало ошибки, это было связано я зову error.message.text внутри SignUpAsync,Ошибка проверки, если имя пользователя существует, прежде чем зарегистрировать

Я надеюсь, что я получить некоторую помощь здесь, Был на этом в течение 2 дней только для простого входа в систему.

У меня есть регистрация, но если я снова использую то же имя пользователя, это не сработает, однако оно не вернет никаких ошибок или чего-нибудь для меня, пользователь ...

Я использую это из документов

//try and register user and catch any errors. 
      try 
      { 
       Task signUpTask = user.SignUpAsync().ContinueWith(t => { 
        if (t.IsFaulted) 
        { 
         // Errors from Parse Cloud and network interactions 
         using (IEnumerator<System.Exception> enumerator = t.Exception.InnerExceptions.GetEnumerator()) 
         { 
          if (enumerator.MoveNext()) 
          { 
           ParseException error = (ParseException)enumerator.Current; 
           ErrorMessage.text = error.Message; 
           Invoke("ClearForm", 4); 

           // error.Message will contain an error message 
           // error.Code will return "OtherCause" 
          } 
         } 
        } 
        else 
        { 
         ErrorMessage.color = Color.green; 
         ErrorMessage.text = "Login Success"; 
        } 
       }); 
      } 
      catch (InvalidOperationException e) 
      { 
       ErrorMessage.color = Color.red; 

       ErrorMessage.text = e.Message; 
       Invoke("ClearForm", 4); 

       // Error from the SDK logic checks 
       // e.Message will contain the specific error 
       // ex: "Cannot sign up user with an empty name." 
      } 

С тех пор как я не справился с этим в течение 2 дней, я решил просто выполнить функцию, которая проверяет имя пользователя при каждом обновлении ввода, но даже это не работает ... и у них есть только один маленький пример для как запросить пользователей ... Мне действительно нужны некоторые примеры документов .. пожалуйста ...

вот что я пробовал.

public void CheckUserName() 
{ 
    if (UserNameInput.text.Length > 2) 
    { 

     ParseUser.Query.WhereEqualTo("username", UserNameInput.text).FindAsync().ContinueWith(t => 
     { 
      if (t.Result.Any()) 
      { 
       //it found someone make error symbol 
       UserNameInputError.sprite = ErrorSprite; 
       UserNameInputError.enabled = true; 
       ErrorMessage.color = Color.red; 
       ErrorMessage.text = "UserName Taken"; 

      } 
      else 
      { 
       //it didnt? make success symbol 
       UserNameInputError.sprite = SuccessSprite; 
       UserNameInputError.enabled = true; 
       ErrorMessage.color = Color.green; 
       ErrorMessage.text = "UserName Availible"; 
      } 

     }); 
    } 
    else 
    { 

     UserNameInputError.sprite = ErrorSprite; 
     UserNameInputError.enabled = true; 
     ErrorMessage.color = Color.red; 
     ErrorMessage.text = "Username Must be More Than 2 Characters"; 
    } 

} 

Однако это, похоже, не работает, и я не получаю никакой обратной связи от разбора .. всего 2 ошибки в консоли, которые могут быть связаны?

Ошибки:

get_isActiveAndEnabled can only be called from the main thread. Constructors and field initializers will be executed from the loading thread when loading a scene. Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function.

и

set_enabled can only be called from the main thread. Constructors and field initializers will be executed from the loading thread when loading a scene. Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function.

Я надеюсь, что кто-то может помочь .. и предоставить мне пример того, как проверить имя пользователя существует?

Как поймать ошибку входа в мою учетную запись выше?

и как хранить электронную почту в parseuser, что я получаю от успешного facebook логин ..

большое спасибо ..

ответ

0

решаемые его. Я вызывал методы единства внутри async. Понял, что мне не нужно, поскольку я могу просто обнаружить, если parseuser.currentuser не равен null, чтобы напечатать мое сообщение о успехе.

Смежные вопросы