J'ai une application qui est connectée à Firebase et vous pouvez vous connecter en utilisant Google et Facebook. L'application dispose d'un écran d'accueil qui est chargé lorsque l'utilisateur est connecté. Je ne souhaite pas afficher l'écran de connexion si l'utilisateur s'est déjà connecté auparavant. Donc j'utilise ce code dans l'écran d'accueil pour vérifier si l'utilisateur est connecté. Écran d'accueil est le contrôleur de vue initial dans l'applicationSwift - Ce code est-il incorrect ou dois-je utiliser UserDefaults?
override func viewDidAppear(_ animated: Bool) {
if Auth.auth().currentUser != nil{
// user is signed in
}else{
// No user is signed in.
performSegue(withIdentifier: "login", sender: nil)
}
}
Ce code fonctionne très bien. Je sais, que je pourrais utiliser UserDefaults aussi, mais cela semble être un moyen plus facile. Est-ce mal ou devrais-je utiliser UserDefaults? Mais le seul problème est que, pendant un instant, l'écran d'accueil est affiché, puis le segue est effectué sur l'écran de connexion, et je suppose que c'est parce qu'il est dans la méthode viewdidApepar, donc le code est exécuté après le viewcontroller est apparu. Connaissez-vous une solution?
Je suis sûr que Firebase utilise UserDefaults ou CoreData en dessous de cette API. J'utilise la même manière, je n'ai jamais eu de problèmes. –
Oui mais le seul problème est que l'écran d'accueil est affiché pendant un court instant puis le segue est exécuté sur l'écran de connexion, et je suppose que c'est dans la méthode viewdidApepar, le code est exécuté après l'affichage du viewcontroller. Connaissez-vous une solution? –
L'utilisation de 'viewWillAppear' pourrait à la place fonctionner –