2016-08-18 1 views
1

Ich werde verrückt mit einem Fehler, den ich auf meiner App habe. Ich benutze die neue Firebase, um einen Benutzer zu authentifizieren + Firebase DBLogout Firebase funktioniert nicht wirklich

2 Möglichkeiten zur Anmeldung/Anmeldung: E-Mail oder Facebook.

In meiner App, ich habe eine Logout-Button mit dem einfachen Befehl:

try! FIRAUTH.auth()!.signOut() 
self.performSegueWithIdentifier("firstScreen", sender: self) 

gut funktioniert.

auf demselben iPhone, mein Test:

  • Anmeldung mit Facebook
  • Daten zu meiner app (Firebase-Datenbank) unterschiedliche Konto von E-Mail
  • Abmelden
  • Anmeldung mit einer E-Mail hinzufügen, verwendet von Facebook

Ich erhalte genau die gleichen Daten, die ich mit meinem Profilkonto hatte. wie wenn ich nicht wirklich ausgeloggt war.

Ich muss die App nach der Abmeldung zu töten, um die Daten für das Konto, das ich verwende.

Haben Sie eine Idee? Was ist genau passiert, als ich die App-Aufgabe beendet habe?

Vielen Dank für Ihre Antwort.

Antwort

0

Ich habe mit dem gleichen Problem behandelt, das Problem ist, wenn Sie sich aus dem Firebase abmelden, müssen Sie sich auch von Facebook abmelden.

try! FIRAUTH.auth()!.signOut() 
let loginManager = FBSDKLoginManager() 
loginManager.logOut() 
self.performSegueWithIdentifier("firstScreen", sender: self) 

Wenn Sie nicht halten Sie die gleichen Daten zurück bekommen, wenn Sie sich anmelden.

0

Dank Justin aber leider genau es ist das gleiche Problem mit der Lösung. ich falsch liege auf meinem AppDelegate Vielleicht, wo ich überprüfen, ob der Benutzer verbunden ist, wenn er die App verlässt:

//check if user has a currentUser ID 
//if Yes, we check if he has a username 
//if Yes, he goes to vc (first viewcontroller) 
//if not, he geos to the vc2 where he chooses a username 

if ((FIRAuth.auth()!.currentUser) != nil){ 
userID = String(FIRAuth.auth()!.currentUser!.uid) 
    ref.child("Users").child(userID).child("name").observeSingleEventOfType(FIRDataEventType.Value, withBlock: { (snapshot) in 
     if (snapshot.value as? String == ""){ 
      self.window?.rootViewController = vc2 
     }else{ 
      self.window?.rootViewController = vc 
     } 
    }) 
}