2016-10-18 2 views
0

Wer weiß, wie ich die Benutzer-ID für einen bestimmten Benutzer in Auth bekommen kann?Xcode Firebase authentifizierten Benutzer erhalten, während als jemand anders angemeldet

Lassen Sie uns sagen, dass ich mit den aktuellen Benutzer [email protected] bin angemeldet, dann kann ich Benutzer-ID von

let userId = FIRAuth.auth()?.currentUser?.uid 

bekommen, aber wenn ich die userId des anderen Benutzers erhalten möchten [email protected] während Ich bin als [email protected] angemeldet.

Wie kann ich das tun?

enter image description here

Dies ist, wie ich einen neuen Benutzer erstellen:

FIRAuth.auth()?.createUser(withEmail: txtUsername.text!, password: txtPassword.text!, completion: { 
      user, error in 

      if error != nil { 
       print("error: " + error.debugDescription) 
      } 
      else{ 
       print("User created") 
       self.login() 
      } 
     }) 

Welche angebracht in den authentifizierten Benutzer im Bild führen.

Ich habe auch eine Benutzer-Tabelle, aber das hat nichts mit der Authentifizierung von Benutzern für die Anmeldung zu tun.

enter image description here

Die Sache ist, dass ich neue authentifizierte Benutzer programmatisch hinzufügen müssen. Was ist in Ordnung, aber wie kann ich Daten aus der authentifizierten Tabelle abfragen? Ich muss es tun, weil ich die authentifizierte UID jedem Benutzerstamm in der Datenbank hinzufüge (siehe Abbildung der Benutzertabelle)

+0

Von Firebase-Datenbank – Dravidian

+0

Wenn Sie sagen * in der Firebase-Konsole oder in Code "eingeloggt"? – Jay

Antwort

0

Erstellen Sie für jeden Benutzer einen Datensatz in Ihrer Firebase-Datenbank und speichern Sie uid für jeden Benutzer, damit Sie abrufen können dass uid sobald Sie es brauchen.

Wenn Sie uid Informationen mithilfe der E-Mail-Informationen des genannten Benutzers (d. H. [email protected] in Ihrem Fall) abfragen, ist es am besten, Benutzerinformationen einschließlich uid unter einem Schlüssel der jeweiligen Benutzer-E-Mail zu speichern.

+0

Die Verwendung von E-Mail als Schlüssel kann zu einer ganzen Reihe von Problemen führen, ändern E-Mail-Adressen und wenn Sie sich beziehen Benutzer werden in anderen Bereichen der Firebase-Struktur durch ihre E-Mails blockiert (was häufig vorkommt), wenn eine Benutzer-E-Mail geändert wird. Es empfiehlt sich, dynamische Daten (wie eine E-Mail) von Node Keys zu trennen, die statisch bleiben müssen zugewiesene UID ist der Weg zu gehen. – Jay

0

Wenn Sie sich anstelle der Konsole im Code anmelden, besteht eine Möglichkeit darin, den Knoten/users zu nutzen.

Bei Firebase ist es üblich, einen Knoten/users zu verwenden, der Informationen über Ihre Benutzer speichert.

users 
    uid_001 
    email: "[email protected]" 
    name: "Dr. Who" 
    fav_food: "Jelly Babies" 
    uid_002 
    email: "[email protected]" 
    name: "Homer Simpson" 
    fav_food: "Doughnuts" 

Die UID als Schlüssel für jeden Benutzerknoten verwendet werden, sind die von Firebase erzeugt wird, wenn der Benutzer erstellt wird.

Von dort ist es ein Kinderspiel, nach der E-Mail-Adresse abzufragen, die den fraglichen Knoten abruft, wobei der Elternschlüssel die Benutzer-ID ist.

+0

Ja, ich habe einen Benutzer-Knoten wie die, die Sie hinzugefügt haben, aber der Schlüssel jedes Unterknotens ist die authentifizierte UID.So jedes Mal, wenn ich einen neuen authentifizierten Benutzer programmatisch erstellen muss ich das neu bekommen Um in den Unterknoten des Benutzerknotens (wie deine uid_001 und did_002) einzufügen, musst du – TommyF

+0

@TommyF haben meine Probleme mit Firebase 3.Sieh dir diese Antwort und eine brillante Problemumgehung von Andre an [Firebase startet den aktuellen Benutzer] (http://stackoverflow.com/questions/37517208/firebase-kicks-out-current-user/38013551#38013551). Sie müssen einen anderen Firebase-Account verwenden, um den Benutzer zu erstellen, und dann die Benutzer-ID abrufen, um den Knoten im Knoten/users zu erstellen. – Jay

+0

Das sieht interessant aus. Aber ich kann nicht herausfinden, wie man einen zweiten Account mit swift einrichtet. Weißt du das?) – TommyF

Verwandte Themen