Удалить конкретного пользователя из Firebase
Есть ли способ получить конкретную учетную запись пользователя из firebase, а затем удалить ее?
Например:
// I need a means of getting a specific auth user.
var user = firebase.auth().getUser(uid);
// Note the getUser function is not an actual function.
После этого я хочу удалить этого пользователя и его дополнительные данные:
// This works
user.delete().then(function() {
// User deleted.
var ref = firebase.database().ref(
"users/".concat(user.uid, "/")
);
ref.remove();
});
Документация Firebase утверждает, что пользователи могут быть удалены, если они в данный момент вошли в систему:
firebase.auth().currentUser.delete()
Моя цель - разрешить вошедшему в систему администратору удалять других пользователей из системы.
Ответы
Ответ 1
Обновление: теперь есть Firebase Admin SDK, который работает с правами администратора и позволяет удалять пользователей.
Единственный способ в данный момент удалить пользователя - сначала войти в систему под этим пользователем. В настоящее время нет API для удаления пользователя без первого входа в систему этого пользователя.
Мы знаем, что эта функциональность необходима для многих приложений, и работаем над ее добавлением. Но, как обычно, у нас нет графика времени, когда он будет доступен.
Между тем, общий подход заключается в том, чтобы сохранить белый/черный список, например, в базе данных Firebase и авторизоваться на основе этого. Смотрите Как отключить регистрацию в Firebase 3.x
Ответ 2
Просто примените этот код так же, как вы сделали аутентификацию.
var user = firebase.auth().currentUser;
user.delete().then(function() {
// User deleted.
}).catch(function(error) {
// An error happened.
});