2016-06-10 10 views
5

Chcę sprawdzić, czy użytkownik ma jeszcze ważną sesję, zanim przedstawię kontroler widoku domowego mojej aplikacji. Korzystam z najnowszego interfejsu API Firebase. Myślę, że jeśli skorzystam ze spuścizny, będę mógł to wiedzieć.Jak sprawdzić, czy użytkownik ma prawidłową bazę Firebase systemu iS?

Oto co zrobiłem do tej pory:

Próbowałem pisać w Xcode tak:

FIRApp().currentUser() 
FIRUser().getCurrentUser() 

Ale nie mogę znaleźć funkcji getCurrentUser.

+3

Zobacz https://firebase.google.com/docs/auth/ios/manage-users –

+0

Czekaj, co? jest przewodnik? Nie zauważyłem tej zakładki "przewodnik", tylko zakładkę "referencje". Dziękuję bardzo! Ale czy ma to zastosowanie, jeśli aplikacja akceptuje tylko jedno konto, a wielu użytkowników będzie musiało zalogować się na to samo konto w tej samej aplikacji? –

+1

FIRUser * użytkownik = [FIRAuth auth] .currentUser; –

Odpowiedz

11
if FIRAuth.auth().currentUser != nil { 
    presentHome() 
} else { 
    //User Not logged in 
} 
5

Rozwiązanie w Swift 3

override func viewDidLoad() { 
    super.viewDidLoad() 

    FIRAuth.auth()!.addStateDidChangeListener() { auth, user in 
     if user != nil { 
      self.switchStoryboard() 
     } 
    } 
} 

Gdzie switchStoryboard() jest

func switchStoryboard() { 
    let storyboard = UIStoryboard(name: "NameOfStoryboard", bundle: nil) 
    let controller = storyboard.instantiateViewController(withIdentifier: "ViewControllerName") as UIViewController 

    self.present(controller, animated: true, completion: nil) 
} 

Source

2

Rozwiązanie w Swift 4

override func viewDidLoad() { 
    super.viewDidLoad() 
    setupLoadingControllerUI() 
    checkIfUserIsSignedIn() 
} 

private func checkIfUserIsSignedIn() { 

    Auth.auth().addStateDidChangeListener { (auth, user) in 
     if user != nil { 
      // user is signed in 
      // go to feature controller 
     } else { 
      // user is not signed in 
      // go to login controller 
     } 
    } 
} 
3
if Auth.auth().currentUser?.uid != nil { 

    //user is logged in 

    }else{ 
    //user is not logged in 
    } 
Powiązane problemy