0

私のfirebaseダッシュボードでは、1つのメールオプションに複数のアカウントを設定しています。
firebase dashboard

私はapp.modules.ts

home.ts前のコード、ユーザーの電子メールでionic3 + firebase + angularfire2 facebook emailヌルメールアドレスごとに複数のアカウントがある

facebookir(){ 
let goPagePrehome:boolean = false; 
let userDB:any; 
firebase.auth().signInWithPopup(new firebase.auth.FacebookAuthProvider()) 
    .then(res => { 
    console.log(res); 
    console.info(JSON.stringify(res)); 
    this.userService.getUsers() 
    .forEach((users) => { 
     users.forEach((user) =>{ 
      if(user['user_email'] == res.additionalUserInfo.profile.email){ 
       // console.log('res.additionalUserInfo.profile.email'); 
       // console.log(user); 
       userDB = user; 
       goPagePrehome= true; 
      } 
     }); 
     if(goPagePrehome){ 
     this.goNextPagePrehome(userDB); 
     }else{ 
     this.singup(); 
     } 
    }); 
    }); } 

のコードをヒットしないようにAngularfire2の構成が標準です私たちのデータベースに作成され、検証されます。そして、 "this.singup();"というレコードに送られます。または家に "this.goNextPagePrehome(userDB);"

sign.ts

this.afAuth.authState.subscribe(user => { 
    console.log('find user facebook 2'); 
    console.log(user); 
    if (user){ 
     if(user.providerData["0"].providerId == "facebook.com"){ 
     if(this.userData['picture'] == '' || this.userData['picture'] == undefined || this.userData['picture']== null){ 
      console.info('find user facebook 2 - si'); 
      this.userData['name']=this.userData['username']= user.providerData["0"].displayName; 
      this.userData['email']= user.providerData["0"].email; 
      this.userData['picture']= user.providerData["0"].photoURL; 
      console.log(this.userData); 
     } 
     } 
     //this.envioCorreoFacebook(); 
    } else { 
     console.info('find user facebook 2 - no'); 
    } 
    }); 

あなたは、私が「providerData [」0「]」と「res.additionalUserInfo.profileとして、プロバイダによって供給されたデータのためのメールを確認しています両方のファイルで見ることができるように。 Eメール"。
firebase応答は次のとおりです。
firebase images

は、私はいくつかのFacebookのアカウントがfirebaseで作業この問題を修正するためにあなたの助けが必要ですか。?

+0

この投稿が推奨しました。 :https://stackoverflow.com/questions/40570200/firebase-facebook-login-with-redirect-returning-null-email –

+0

Facebookアカウントにメールがない可能性があります。また、Facebookでサインインする際にメールスコープをリクエストすることもできますか? – bojeil

答えて

0

私は再びメールを受け取った。デフォルトでは、それはすべてのFacebookアカウントに持ち込む必要があります。

var provider = new firebase.auth.FacebookAuthProvider(); 
    provider.addScope('email'); 
    firebase.auth().signInWithPopup(provider) 
     .then(res => {...});