2016-12-14 16 views
0

現在、認証ユーザーのメールを受け取るにはどうすればよいですか?彼のuIDを取得するのはとても簡単です。AngularFire2 - 認証ユーザーのメールを受け取る方法

constructor(public af: AngularFire){ 
      this.user = this.af.auth.getAuth().uid; 
} 

私は彼のメールを受け取ることができません。どのように私はこれを得ることができますか? getAuth()メソッドで私はUIDとプロバイダ番号を取得できます。

+0

試し 'this.af.auth.getAuth()。auth.email' – Ivaro18

+0

ああ私の神様..ありがとうございます。<3 – qwerty1234567

+0

もう一つ質問です。彼の電子メールとパスワードだけでなく、作成することもできますか?私は名前と姓にもなりたい。 – qwerty1234567

答えて

0

emailプロパティにアクセスするには、まずauthプロパティにアクセスする必要があります。あなたはそれをJSON場合(getAuth()以来{auth { .... }}を返します。

を私は自分自身には、以下の方法を使用しauth.displayNameを変換する。これは、1つのまたは複数の単語を保持stringがかかります。唯一の1単語があれば、それがためにそれを設定します(stringは空白に分割され、末尾の空白をすることは、長いlastnameため良く見えているので、いくつかのより多くのロジックで)空のfirstnamelastnameは2つの以上の単語では、最初の単語はlastnamefirstname、すべてになります

メソッド自体では、「Edwin van der Sar」の処理方法を説明します。

// 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; 
    } 

(かなり可能性を向上させることができるが、それは私のprioritesの一つではありませんので、それがすべてで遅くないです)

+0

私は嫌いではありませんが、どうすれば実際にこのユーザーを作成できますか?私はこのような方法がありますhttp://pastebin.com/eBFwusbk。 – qwerty1234567

+0

ハハを心配しないでください。しかし、私は答えは分かりません。私は、ソーシャルメディアからの名前/電子メールの認証と取得に 'angularfire2'を使用します。私は電子メールパスワードのログインを使用していません – Ivaro18

+0

問題の男は、助けて大好きです。新しい質問でそれを尋ねることが重要です – Ivaro18

関連する問題