【发布时间】:2019-05-18 23:41:48
【问题描述】:
我正在尝试将匿名 firebase 帐户与提供者帐户相关联,并且我正在使用从此处的文档中复制的以下 javascript 代码:https://firebase.google.com/docs/auth/web/account-linking
这是我正在使用的确切代码:
function mergeAccounts(credential){
console.log("merging guest account with provider account");
var auth = firebase.auth();
// Get reference to the currently signed-in user
var prevUser = auth.currentUser;
// Sign in user with another account
auth.signInAndRetrieveDataWithCredential(credential).then(function(user) {
console.log("Sign In Success", user);
var currentUser = user;
// Merge prevUser and currentUser data stored in Firebase.
// Note: How you handle this is specific to your application
// After data is migrated delete the duplicate user
return user.delete().then(function() {
// Link the OAuth Credential to original account
return prevUser.linkAndRetrieveDataWithCredential(credential);
}).then(function() {
// Sign in with the newly linked credential
return auth.signInAndRetrieveDataWithCredential(credential);
});
}).catch(function(error) {
console.log("Sign In Error", error);
});
}
当我以匿名用户身份登录到 firebase,然后尝试使用我的 google 帐户登录时,上面的代码成功地用 google 登录了我(console.log("Sign In Success", user); 行按预期工作,并向我显示了用户详细信息控制台。但是我得到一个错误,上面写着Sign In Error TypeError: user.delete is not a function at 16login.js:212,它指的是具有return user.delete().then(function() {的行
我使用的文档和代码 sn-p 似乎表明 delete() 是 user 的一个函数,所以我对它为什么会抛出这个错误感到有点困惑。
非常感谢任何帮助 - 谢谢。
【问题讨论】:
标签: javascript firebase firebase-authentication