2016-12-14 3 views
0

Wie kann ich die E-Mail-Adresse des Auth Users erhalten? Ofc es ist so einfach, seine UID zu bekommen, durchAngularFire2 - Wie bekomme ich die Auth User Email?

Aber ich kann seine E-Mail nicht bekommen. Wie kann ich das bekommen? In getAuth() Methode kann ich uid und Provider-Nummer erhalten.

+0

Versuch 'this.af.auth.getAuth(). Auth.email' – Ivaro18

+0

Oh mein Gott .. Vielen Dank .. <3 – qwerty1234567

+0

Noch eine Frage. Kann ich User nicht nur per Email und Passwort erstellen? Ich möchte dort auch Vor- und Nachname sein. – qwerty1234567

Antwort

0

Um auf die email Eigenschaft zuzugreifen, müssen Sie zuerst auf die auth Eigenschaft zugreifen. (Da getAuth() wird {auth { .... }} zurück, wenn Sie es JSon.

konvertieren ein auth.displayName ich die folgende Methode verwenden. Es dauert eine string hält 1 oder mehr Wörter. Wenn es nur 1 Wort ist, wird es festgelegt, dass die lastname mit einer leeren firstname. auf 2 oder mehr Worten wird das erste Wort, das firstname und alles sein, nachdem die lastname (mit etwas mehr Logik, da die string auf Leerzeichen aufgeteilt wird, und Leerzeichen sucht nach einem langen lastname besser nachgestellt)

In der Methode selbst erkläre ich, wie ' Edwin van der Sar' behandelt würde
// Participant = {id: number, firstname: string, lastname: string} 
    private splitName(part: Participant, fullname: String): Participant { 
      // split the name by space (first last) (['Edwin','van','der','Sar']); 
      let splittedName:Array<string> = fullname.split(' '); 

      // if only one word is displayed (f.e. ivaro18) set it as lastname 
      // (improves search results later on) 
      if(splittedName.length < 2) { 
       part.lastname = splittedName[0]; 
      } 
      // if first and last name are displayed 
      else if (splittedName.length < 3) { 
       part.firstname = splittedName[0]; 
       part.lastname = splittedName[1]; 
      } 
      // if the user has a hard name 
      else if (splittedName.length >= 3) { 
       // first part will be the firstname (f.e. 'Edwin') 
       part.firstname = splittedName[0]; 
       // loop through all other and concat them to be the lastname 
       for(var i = 1; i < (splittedName.length); i++){ 
        if(part.lastname != undefined){ 
         // first part is already there, if it isnt the last part add a space ('der ') 
         if(!(i == (splittedName.length -1))) { 
          part.lastname += splittedName[i] +" "; 
         } else { 
          // it's the last part, don't add a space ('Sar') 
          part.lastname += splittedName[i]; 
         } 
        } 
        // first part of the lastname ('van ') 
        else { 
         part.lastname = splittedName[i] +" "; 
        } 

       } 
      } 
      return part; 
    } 

(durchaus möglich, verbessert werden kann, aber es ist nicht bremsen, damit es nicht eine meiner Prioritätsachsen ist)

+0

Bitte, hasse mich nicht, aber .. wie kann ich diesen Benutzer wirklich schaffen? Ich habe Methode wie diese http://pastebin.com/eBFwusbk. – qwerty1234567

+0

Mach dir keine Sorgen, haha. Aber ich kenne die Antwort nicht, ich benutze 'angularfire2' nur zum Authentifizieren und Abrufen des Namens/der E-Mail von Social Media. Ich benutze keine E-Mail-Passwort Login – Ivaro18

+0

Kein Problem Mann, liebe es zu helfen. Sie sollten in einer neuen Frage nachfragen, ob es für Sie wichtig ist – Ivaro18

Verwandte Themen