【发布时间】:2016-11-14 15:08:47
【问题描述】:
(1) 问题:
有没有办法读取具有 uid 的用户电子邮件? (只允许超级用户或服务器)
Ps.:我不想保存在实时数据库中,因为即使只有当前用户可以更改它,他也可以删除或放置一些假电子邮件..
(2) 问题:
我正在尝试在 Firebase v3 中使用 GoogleAuthProvider 检索用户电子邮件
这就是我正在使用的代码:
signInWithGoogle(): Promise<any> {
let provider = new firebase.auth.GoogleAuthProvider();
provider.addScope("https://www.googleapis.com/auth/userinfo.email");
return firebase.auth().signInWithPopup(provider)
.then((result) => {
console.log(result.user.email);
console.log(result.credential);
let token = result.credential.accessToken;
return this.createOrUpdateUser(result.user, token);
});
}
结果:
result.user.email # null
result.user.providerData[0].email # correct_email@gmail.com
即使电子邮件在 providerData 中,它也没有附加到 auth.. 它是一个 firebase 错误还是我可以以某种方式修复它?
谢谢!
【问题讨论】:
-
无法通过 Firebase 身份验证 API 中的 uid 查找用户的电子邮件。见this recent answer。大多数开发人员将用户信息存储在数据库中以允许列表/查找。查看大卫链接的答案。
标签: firebase firebase-authentication