【发布时间】:2020-07-21 09:48:43
【问题描述】:
我正在实施一个工作流程,其中使用我的应用的每个用户都是匿名用户,直到他们登录/注册(电子邮件或 Google)。
要注册,很简单:我使用linkWithPopup。
但是,我在用户登录 in 时遇到了一些问题:我尝试链接它们,如果我收到 auth/credential-already-in-use 错误(如果用户升级一次,注销然后尝试再次登录),我让他们登录。
firebase.auth().currentUser.linkWithPopup(provider).then(function (result) {
var token = result.credential.accessToken;
// The signed-in user info.
var user = result.user;
// ...
}).catch(function (error) {
// Handle Errors here.
var errorCode = error.code;
if (errorCode === 'auth/credential-already-in-use') {
return firebase.auth().signInWithCredential(error.credential);
}
}).then((result) => {
return dispatch(loadContent(result.user.uid))
}).then(() => {
history.push('/');
});
上面的代码运行良好,而且比我自己做这一切更容易。
但是,如果用户登录,我如何删除创建和孤立的匿名用户?
我试图引用旧的无用匿名用户,并在用户登录后将其删除如果用户可以删除另一个,那将是一个很大的安全漏洞......
我对 Firebase 生态系统不是很熟悉,应该如何处理?我需要使用Firebase Cloud Function 和Firebase Admin SDK 的组合,还是有解决此问题的标准方法?
【问题讨论】:
-
我认为这里没有任何“标准”。您当然可以使用任何您喜欢的方式使用 admin SDK 来删除该帐户。您不必使用 Cloud Functions,但如果您觉得它有帮助,您可以使用。
标签: javascript firebase firebase-authentication