FB Abmelden funktioniert nicht im Swift
Bin ich mit dem neuesten FB-API (3.2.1) und ich bin mit diesem code, um zu überprüfen, ob Benutzer angemeldet ist:
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
if(self.navigationController != nil){
self.navigationController!.setNavigationBarHidden(true, animated: true)
}
if(FIRAuth.auth() != nil){
self.performSegueWithIdentifier("loginSuccessSegue", sender: self)
}
}
In anderen Worten, wenn auth-Objekt vorhanden ist, ich bin Umstieg auf andere controller. An diesem controller habe ich sign out button tut sich Zeichen wie diese:
do{
try FIRAuth.auth()?.signOut()
self.performSegueWithIdentifier("logoutSegue", sender: self)
}catch{
print("Error while signing out!")
}
Ich bekomme keine Fehler auf diesem Betrieb, aber wenn ich eingeschaltet, um login-controller, diesen auth-Objekt vorhanden ist, und ich bekomme wieder eingeschaltet, wieder den controller mit Daten. Ich habe auch versucht, die überprüfung der aktuellen user-Objekt in auth und es ist vorhanden und gültig.
Jemand weiß, wie ein ich richtig zu machen Abmelden?
- Ich habe gerade realisiert, das in meiner eigenen app, mit ein wenig Hilfe von Wiley auf FB. Sie können einen listener hinzufügen, wie ich Sie beschrieben habe in this Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
versuchen Sie es mit :
Dies ist der code den ich in eine IBAction, und es funktioniert Prima :
Swift-4.2-Update #
try!
Kraft packt Sie den code und garantiert, dass Ihre Funktion wird nie ein Fehler auftreten. In dem Fall, dasssignOut()
Funktion wird keinen Fehler werfen Ihre app stürzt einfach ab. Also, OPs-code korrekt ist, aber es ist etwas anderes, das verursacht das Problem hier.Ich möchte nur hinzufügen, dass ich hatte das gleiche problem und habe versucht, verschiedene Kombinationen des Codes, die andere vorgeschlagen haben.
Das problem für mich stellte sich heraus, dass, wenn ich einen Logout-button im storyboard habe ich auch eine Verbindung erstellt durch die Steuerung mit der Maus vom button auf meiner login-view-controller, denken, dass es das war, was ich wollte, es zu tun.
Es stellte sich heraus, dass meine signout-code nie ran, weil der Ausgelöste Übergang zurück zum login-controller, so ging es zurück zum login-screen und sofort zu meinem zweiten view-controller, weil der Benutzer war nie abgemeldet.
Also am Ende dieser arbeitete für mich:
Aber nur nach ich gelöscht, der Wechsel hatte ich unwissentlich erstellt.