在防火墙后端,我知道如何通过电子邮件和密码、Facebook认证、google认证、链接等多种技术对用户进行身份验证。因此,在web v9模块中,为了创建提供者对象,我们使用:const provider = new GoogleAuthProvider()
并添加电子邮件范围,我们按如下方式进行:用户登录后的provider.addScope('email')
,我们得到了这样的result.user对象:
signInWithPopup(auth, provider)
.then((result)=>{
storeUser(result.user);
})
.catch((err)=>{
// console.log(`google err --->${err.message}`);
})
.finally(()=>{});
最大的问题是:在成功登录后,我们如何才能检索电子邮件?
发布于 2022-11-20 04:07:29
result
是一个UserCredential
对象。要获得电子邮件,请尝试:
const userEmail = result.user.email
发布于 2022-11-21 12:21:46
经过多次研究,我终于找到了解决问题的办法。
import { getAuth } from "firebase/auth";
const auth = getAuth();
const user = auth.currentUser;
if (user !== null) {
user.providerData.forEach((profile) => {
console.log("Sign-in provider: " + profile.providerId);
console.log(" Provider-specific UID: " + profile.uid);
console.log(" Name: " + profile.displayName);
console.log(" Email: " + profile.email);
console.log(" Photo URL: " + profile.photoURL);
});
}
https://stackoverflow.com/questions/74496507
复制相似问题