2016-06-05 2 views
3

Я использую новую инфраструктуру Firebase, и я пытаюсь контролировать состояние входа пользователя как в качестве входа, так и в аккаунт VC отдельно. Проблема заключается в том, что состояние входа в систему изменяется в представлении SignUp, и вызывается также состояние Auth в представлении Login. Мой вопрос: как удалить состояние auth? Я нашел синтаксис на сайте Firebase, но я немного запутался о том, чтобы пройти в рассмотрении моего кода для состояния входа:.Удаление Firebase authState при просмотреDidDisappear

FIRAuth.auth()?.addAuthStateDidChangeListener { auth, user in 
      if let theUser = user { 
       // User is signed in. 
       print("LOGGED IN!!!! :::: \(theUser)") 
       self.dismissViewControllerAnimated(true, completion: nil) 
      } else { 
       // No user is signed in. 
       print("Need to login first.") 
      } 
     } 

кода использовать, чтобы удалить авторизацию, но не зная, что пройти в

FIRAuth.auth()?.removeAuthStateDidChangeListener(FIRAuthStateDidChangeListenerHandle) 

Говорит, что я передаю FIRAuthStateDidChangeListenerHandle, но как это получить, или я могу переписать код authState по-другому?

ответ

4

Просто сохраните авторизацию в переменной

self.authListener = FIRAuth.auth()?.addAuthStateDidChangeListener { auth, user in 
      if let theUser = user { 
       // User is signed in. 
       print("LOGGED IN!!!! :::: \(theUser)") 
       self.dismissViewControllerAnimated(true, completion: nil) 
      } else { 
       // No user is signed in. 
       print("Need to login first.") 
      } 
     } 

и удалить его позже

FIRAuth.auth()?.removeAuthStateDidChangeListener(self.authListener) 
Смежные вопросы