0

在我的firebase控制面板中,我爲一個電子郵件選項設置了多個帳戶。
firebase dashboard

Angularfire2的配置是標準的,所以我不打app.modules.ts的代碼

home.tsionic3 + firebase + angularfire2 facebook電子郵件null每個電子郵件地址有多個帳戶

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(); 
     } 
    }); 
    }); } 

在上面的代碼,用戶的電子郵件在我們的數據庫中創建並驗證。併發送到記錄「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提供的數據。電子郵件」。
的火力反應是:
firebase images

我需要你的幫助來解決這個問題,一些Facebook賬戶與火力的作品嗎?

+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 => {...}); 
相關問題