Использование firebase для создания входа пользователя следующим образом,
a) Просмотр регистрации -> b) Просмотр электронной почты -> c) Просмотр userName
И есть две кнопки, а именно back
и next
, все это можно увидеть ниже,
Проблема возникает, когда view b
ранее посещал view c
и после нажатия back button
на view b
, Firebase ложно переходит в функцию аутентификации пользователя (проверяется с использованием точек останова),
Код поддержки для back button
,
(IBAction)backButtonPressed:(id)sender {
if(page==0)
{
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Signup" message:@"Are you sure you want to quit signup?" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *ok = [UIAlertAction actionWithTitle:@"Yes" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action)
{
[self.navigationController popViewControllerAnimated:YES];
//BUTTON OK CLICK EVENT
}];
UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleDestructive handler:nil];
[alert addAction:cancel];
[alert addAction:ok];
[self presentViewController:alert animated:YES completion:nil];
}
else
{
[self moveToPreviousStep];
}
if (page==3){
self.skipButton.hidden=YES;
}
}
Код поддержки для next button with Firebase specific code
,
[ARSLineProgress showWithPresentCompetionBlock:^{
[[FIRAuth auth] fetchProvidersForEmail:self.signUpEmail.text completion:^(NSArray<NSString *> * _Nullable providers, NSError * _Nullable error) {
[ARSLineProgress hideWithCompletionBlock:^{
if([providers count]==0)
{
NSLog(@"email is valid for signup");
signingUpFromEmail = TRUE;
[self moveToNextStep];
}
Что должно произойти,
После нажатия back button
в view b
должно появиться окно a, не входящее в функцию аутентификации Firebase, (возможно, это ожидающий поток для firebase, который необходимо очистить, или он может обрабатываться программно)