私の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で作業この問題を修正するためにあなたの助けが必要ですか。?
この投稿が推奨しました。 :https://stackoverflow.com/questions/40570200/firebase-facebook-login-with-redirect-returning-null-email –
Facebookアカウントにメールがない可能性があります。また、Facebookでサインインする際にメールスコープをリクエストすることもできますか? – bojeil