Я реализую рабочий процесс, в котором каждый пользователь, использующий мое приложение, является анонимным пользователем до тех пор, пока он не войдет в систему или не выполнит вход (электронная почта или Google).
Чтобы подписать up , это просто: я использую linkWithPopup
.
Однако у меня были некоторые проблемы с подписью пользователя в : я пытаюсь связать их и, если я получаю ошибку 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
или есть стандартный способ решения этой проблемы?