Попробуйте использовать такое свойство типа bool (я его не тестировал):
bool isComplete {
set {
if(isComplete) {
Color col = Color.red;
img.color = col; // COLOR CHANGE
Debug.Log("Registration Complete");
}
}
}
Установите для bool "isComplete" значение true в операторе if (task.isCompleted)
Когда bool имеет значение true, цвет будет изменен.
РЕШЕНИЕ
Итак, в основном, чтобы решить проблему, я использовал Corutine и жду, пока задача не будет завершена и она будет работать нормально! Вот код:
// Button Event
public void OnRegisterUser()
{
StartCoroutine(Registration("email@google.com", "12345"));
}
private IEnumerator Registration(string email, string password)
{
// Create Account Async
var registrationTask = Auth.CreateUserWithEmailAndPasswordAsync("emaai2dl@gmail.com", "password");
// We wait until the task is Completed
yield return new WaitUntil(() => registrationTask.IsCompleted);
// When the task is completed Check for errors
if(registrationTask.Exception != null)
{
Firebase.FirebaseException e =
registrationTask.Exception.Flatten().InnerExceptions[0] as Firebase.FirebaseException;
// Method to see the type of error
GetAuthError((AuthError)e.ErrorCode);
img.color = Color.red;
}
// Task is Completed
else
{
Debug.Log("Registration Completed");
img.color = Color.green;
}
}
// Check error type
void GetAuthError(AuthError error)
{
string msg = "";
msg = error.ToString();
switch (error)
{
case AuthError.AccountExistsWithDifferentCredentials:
return;
case AuthError.MissingPassword:
return;
case AuthError.MissingEmail:
return;
case AuthError.WrongPassword:
return;
case AuthError.InvalidEmail:
return;
}
Debug.LogWarning("Registration(): " + msg);
}