我正在尝试编写一个函数来重新验证使用 Facebook 帐户登录的 Firebase 用户。对于电子邮件,我根据电子邮件和密码创建凭据,但 Facebook 不会为该用户存储密码。我试图在文档中找到它,但找不到
let user = firebase.auth().currentUser;
let credential = '';
//User created with Email
if(user.providerData[0].providerId === "password") {
credential = firebase.auth.EmailAuthProvider.credential(
user.email,
this.state.password
);
}
//User created with Facebook
if(user.providerData[0].providerId === "facebook.com") {
credential = firebase.auth.FacebookAuthProvider.credential(
? // <= User Email, Token
)
}
user.reauthenticateAndRetrieveDataWithCredential(credential).then(function(){
user.delete().then(function() {
}).catch(function(error) {
console.log(error)
}
}).catch((error) => {
console.log(error)
}
最佳答案
根据 FacebookAuthProvider.credential() 签名,您将需要 OAuth token /accessToken 来创建凭据。
您可以在用户登录时提取accessToken:
firebase.auth().signInWithPopup(provider).then(function(result) {
// This gives you a Facebook Access Token. You can use it to access the Facebook API.
var token = result.credential.accessToken;
// The signed-in user info.
var user = result.user;
// ...
})
该示例摘自 https://firebase.google.com/docs/auth/web/facebook-login您可以在其中找到更多相关信息。
关于javascript - firebase reauthenticateAndRetrieveDataWithCredential facebook 用户凭证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54873601/