private async void confirm_Click() { ProgressBar pb = FindViewById <ProgressBar>(Resource.Id.progressBar1); pb.Visibility = ViewStates.Visible; email = FindViewById <EditText>(Resource.Id.email); login = FindViewById <EditText>(Resource.Id.login); password = FindViewById <EditText>(Resource.Id.pass); repass = FindViewById <EditText>(Resource.Id.repass); edit_controls(false); try { if (password.Text.Length > 7) { if (password.Text == repass.Text) { Utils.IsCorrectEmail(email.Text); Utils.IsCorrectLogin(login.Text); FirebaseController.instance.initFireBaseAuth(); string s = await FirebaseController.instance.Register(email.Text, password.Text, login.Text); if (s != string.Empty) { var keys = CryptoProvider.GenerateRSAKeys(); FirebaseController.instance.AddContactFolder(email.Text, this, keys[0], keys[1]); AccountsController.instance.CreateTable(); AccountsController.instance.SaveItem(new Account { emailP = email.Text, loginP = login.Text, passwordP = password.Text, openKeyRsaP = keys[0], privateKeyRsaP = keys[1] }); Toast.MakeText(this, "Register success", ToastLength.Short).Show(); Intent intent = new Intent(this, typeof(SignUp)); intent.SetFlags(ActivityFlags.NewTask); StartActivity(intent); Finish(); } else { throw new Exception("Ошибка регистрации, проверьте подключение к интернету!"); } } else { throw new Exception("Пароли должны совпадать!"); } } else { throw new Exception("Длина пароля должна быть больше 8 символов!"); } } catch (FirebaseAuthUserCollisionException) { Utils.MessageBox("Пользователь с таким электронным адресом уже зарегистрирован!", this); } catch (FirebaseException exc) { Utils.MessageBox("Ошибка, проверьте подключение к интернету!", this); } catch (Exception ex) { Utils.MessageBox(ex.Message, this); pb.Visibility = ViewStates.Invisible; edit_controls(true); } edit_controls(true); pb.Visibility = ViewStates.Invisible; }