我已经成功实现了自定义身份验证系统(不是电子邮件和密码普通身份验证),如后端文档中所示:
服务器端:
authAdmin.auth().createCustomToken(uid)
.then(customToken => {
response.send({token: customToken});
}).catch(error => {
console.log(error)
response.status(500).send(error);
});
客户端:
let token = response.json().token;
firebase.auth().signInWithCustomToken(response.token).then(user => {
// Code
}).catch(function(error) {
console.log(error)
});
现在,我需要删除创建的帐户,并且由于该帐户需要重新进行身份验证才能删除,否则必须重新进行身份验证。 我检查了文档,发现了这一点:
currentUser.reauthenticateAndRetrieveDataWithCredential(credential).then(() => {
// Delete user
currentUser.delete().then(() => {
// User deleted
});
});
但是此函数需要一个凭证对象。那么问题是如何从上面提供的自定义身份验证系统中创建凭据对象?
答案 0 :(得分:0)
好的,这是您的操作方法。您需要另一个FirebaseApp。
var app2 = firebase.initializeApp(sameConfig, 'temp');
app2.auth().signInWithCustomToken(token).then(function(result) {
// Confirm this is the same user as the default app.
if (firebase.auth().currentUser.uid == result.user.uid) {
// Overwrite the user in default instance.
return firebase.auth().updateCurrentUser(result.user);
}
throw new Error('User mismatch!');
}).then(function() {
// User reauthenticated. Remove temp user.
app2.auth().signOut();
}).catch(function(error) {
// Error occurred.
});