Eli*_*nen 5 javascript google-authentication firebase firebase-authentication google-signin
我正在使用 Firebase / Google 登录身份验证来登录我的应用程序中的用户。身份验证与 Gmail 帐户完美配合 - 但是,对于我的客户的帐户(拥有企业 Gmail 帐户 (..@company.com)),身份验证有效,但用户个人资料图片未共享(用户对象返回为默认图片,如下所示: https://lh3.googleusercontent.com/-9Me77eEe8m0/AAAAAAAAAAI/AAAAAAAAAAA/0uO0KAv-PMQ/photo.jpg )。
有关信息,我使用非常标准的signInWithPopup方法:
var provider = new firebase.auth.GoogleAuthProvider();
firebase.auth().signInWithPopup(provider)
.then((credential) => {
var authState = credential.user
updateUserData() // Updating user's data })
.catch(error => console.log(error))
Run Code Online (Sandbox Code Playgroud)
因此,我尝试通过使用基于 id 的 url 直接在网上查找个人资料照片(而不是从身份验证中获取个人资料照片)来解决此问题,例如:
http://picasaweb.google.com/data/entry/api/user/?alt=json
但 json 还返回企业帐户的电子邮件地址的默认照片,因此这让我假设该企业帐户必须有一些特定的隐私设置,以防止照片被共享。
有没有人已经遇到过这个问题,或者有任何想法:
我已经被同一问题困扰好几天了。这就是我如何获得正确的照片网址!
var user = firebase.auth().currentUser;
if (user != null) {
user.providerData.forEach(profile => {
console.log(profile.photoURL);
}); //this will give you all the urls once there is user data
}
Run Code Online (Sandbox Code Playgroud)
很可能您正在加载虚拟网址,而 firebase 仍在获取所有用户信息。您只需要在尝试获取网址之前添加检查以确保存在用户数据。我也在使用我的企业帐户。
| 归档时间: |
|
| 查看次数: |
4287 次 |
| 最近记录: |