使用Facebook登录时无效的photoURL

时间:2017-10-17 19:56:34

标签: facebook firebase firebase-authentication

我在使用Facebook进行身份验证时遇到了问题。这是我的简单登录代码:

<script src="https://www.gstatic.com/firebasejs/4.5.2/firebase.js"></script>
<script>
  // Initialize Firebase
  var config = {
  apiKey: "...",
  authDomain: "...",
  databaseURL: "...",
  projectId: "...",
  storageBucket: "...",
  messagingSenderId: "..."
};
firebase.initializeApp(config);

var provider = new firebase.auth.FacebookAuthProvider();

firebase.auth().signInWithPopup(provider).then(result =>{
    var user = result.user;
    console.log(user.photoURL);
});

一旦我使用上面的代码登录,我会收到一封正确的电子邮件,用户等,但我的照片无效:

https://scontent.fna.fbcdn.net/v/t1.0-1/p100x100/11214115_1018245048206356_1486864451318081978_n.jpg?oh=88cb39be27d4d329ab99ae0c426818d1&oe=5A8021D0

当我关注此网址时,出现错误: 找不到服务器scontent.fna.fbcdn.net的DNS地址。

我如何检索正确的Facebook用户照片网址?

我需要提一下google登录完美无缺,并返回有效的photoURL。

2 个答案:

答案 0 :(得分:2)

使用Facebook的Firebase身份验证会在currentUser对象中返回无效的photoUrl。但是,您可以使用providerData列表对象从您的身份验证提供程序中获取正确的photoUrl:

this.afAuth.auth.currentUser.providerData[0].photoURL

请将此信息设为正确答案。 :)

答案 1 :(得分:1)

我通过删除用户并再次登录来解决了这个问题。我可能是生产环境中的一个大问题。

我还发现了另一种解决方法。有效和无效的网址几乎相同:

有效的一个:

https://scontent.xx.fbcdn.net/v/t1.0-1/p100x100/11214115_1018245048206356_1486864451318081978_n.jpg?oh=88cb39be27d4d329ab99ae0c426818d1&oe=5A8021D0

无效:

https://scontent.fna.fbcdn.net/v/t1.0-1/p100x100/11214115_1018245048206356_1486864451318081978_n.jpg?oh=88cb39be27d4d329ab99ae0c426818d1&oe=5A8021D0

因此,如果您遇到此问题,则需要将 fna 从主机名替换为 xx