我在使用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。
答案 0 :(得分:2)
使用Facebook的Firebase身份验证会在currentUser对象中返回无效的photoUrl。但是,您可以使用providerData列表对象从您的身份验证提供程序中获取正确的photoUrl:
this.afAuth.auth.currentUser.providerData[0].photoURL
请将此信息设为正确答案。 :)
答案 1 :(得分:1)
我通过删除用户并再次登录来解决了这个问题。我可能是生产环境中的一个大问题。
我还发现了另一种解决方法。有效和无效的网址几乎相同:
有效的一个:
无效:
因此,如果您遇到此问题,则需要将 fna 从主机名替换为 xx