Освоение удаления пользователей Firebase: удобные методы и примеры кода

Firebase предоставляет мощные серверные службы для создания масштабируемых веб- и мобильных приложений. Когда дело доходит до управления учетными записями пользователей, Firebase предлагает различные методы удаления пользовательских данных. В этой статье блога мы рассмотрим различные подходы к удалению пользователей в Firebase с помощью Firebase Admin SDK, дополненные разговорными объяснениями и примерами кода.

Метод 1: удаление пользователя по UID
Один простой способ удалить пользователя — по его уникальному идентификатору (UID). В следующем фрагменте кода показано, как удалить пользователя с помощью Firebase Admin SDK в Node.js:

const admin = require('firebase-admin');
admin.auth().deleteUser(uid)
  .then(() => {
    console.log('User successfully deleted!');
  })
  .catch((error) => {
    console.error('Error deleting user:', error);
  });

Метод 2. Удаление пользователя по электронной почте.
Если у вас есть адрес электронной почты пользователя, которого вы хотите удалить, вы можете использовать метод getUserByEmail, чтобы получить UID пользователя, а затем удалить его. пользователь, как показано ниже:

const admin = require('firebase-admin');
admin.auth().getUserByEmail(email)
  .then((userRecord) => {
    return admin.auth().deleteUser(userRecord.uid);
  })
  .then(() => {
    console.log('User successfully deleted!');
  })
  .catch((error) => {
    console.error('Error deleting user:', error);
  });

Метод 3: пакетное удаление пользователей
В сценариях, когда вам необходимо удалить несколько пользователей одновременно, Firebase позволяет выполнять пакетные операции. Следующий код демонстрирует, как удалить нескольких пользователей по их UID:

const admin = require('firebase-admin');
const deleteUsers = async (userIds) => {
  const batch = admin.auth().batch();
  userIds.forEach((uid) => {
    batch.delete(admin.auth().deleteUser(uid));
  });
  await batch.commit();
  console.log('Users successfully deleted!');
};
deleteUsers(['uid1', 'uid2', 'uid3'])
  .catch((error) => {
    console.error('Error deleting users:', error);
  });

Метод 4. Удаление пользователя по расписанию
Чтобы запланировать удаление пользователя на определенное время, вы можете использовать облачные функции Firebase и триггер onUserDelete. Этот метод позволяет выполнять дополнительные действия, например очистку связанных данных или отправку уведомлений, перед удалением пользователя.

// Cloud Functions code
exports.scheduledUserDeletion = functions.auth.user().onDelete((user) => {
  // Perform additional actions before deleting the user
  // ...
  return admin.auth().deleteUser(user.uid)
    .then(() => {
      console.log('User successfully deleted!');
    })
    .catch((error) => {
      console.error('Error deleting user:', error);
    });
});

В этой статье мы рассмотрели различные способы удаления пользователей в Firebase с помощью Firebase Admin SDK. Мы рассмотрели удаление пользователей по UID, электронной почте, в пакетном режиме и даже планирование удаления с помощью облачных функций. Благодаря этим удобным примерам кода вы теперь имеете четкое представление о том, как удалять пользователей в Firebase, используя различные подходы. Не забывайте осторожно относиться к удалению пользователя, поскольку оно связано с конфиденциальными данными и соображениями безопасности.