Google is committed to advancing racial equity for Black communities. See how.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Управление пользователями в Firebase

Создать пользователя

Вы создаете нового пользователя в своем проекте Firebase, вызывая метод createUserWithEmailAndPassword или впервые createUserWithEmailAndPassword пользователя с помощью федеративного поставщика удостоверений, такого как Google Sign-In или Facebook Login .

Вы также можете создавать новых пользователей, прошедших проверку паролем, в разделе «Аутентификация» консоли Firebase , на странице «Пользователи» или с помощью Admin SDK .

Получить зарегистрированного пользователя

Рекомендуемый способ получить текущего пользователя - установить наблюдателя на объект Auth:

 firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    // User is signed in.
  } else {
    // No user is signed in.
  }
});
 

Используя наблюдателя, вы гарантируете, что объект Auth не находится в промежуточном состоянии - например, инициализации - когда вы получаете текущего пользователя. Когда вы используете signInWithRedirect , наблюдатель onAuthStateChanged ждет, пока getRedirectResult прежде чем запускать.

Вы также можете получить currentUser пользователя, используя свойство currentUser . Если пользователь не currentUser в систему, currentUser имеет значение null:

 var user = firebase.auth().currentUser;

if (user) {
  // User is signed in.
} else {
  // No user is signed in.
}
 

Получить профиль пользователя

Чтобы получить информацию о профиле пользователя, используйте свойства экземпляра User . Например:

 var user = firebase.auth().currentUser;
var name, email, photoUrl, uid, emailVerified;

if (user != null) {
  name = user.displayName;
  email = user.email;
  photoUrl = user.photoURL;
  emailVerified = user.emailVerified;
  uid = user.uid;  // The user's ID, unique to the Firebase project. Do NOT use
                   // this value to authenticate with your backend server, if
                   // you have one. Use User.getToken() instead.
}
 

Получить информацию о профиле конкретного пользователя

Чтобы получить информацию профиля, полученную от провайдеров входа, связанных с пользователем, используйте свойство providerData . Например:

 var user = firebase.auth().currentUser;

if (user != null) {
  user.providerData.forEach(function (profile) {
    console.log("Sign-in provider: " + profile.providerId);
    console.log("  Provider-specific UID: " + profile.uid);
    console.log("  Name: " + profile.displayName);
    console.log("  Email: " + profile.email);
    console.log("  Photo URL: " + profile.photoURL);
  });
}
 

Обновите профиль пользователя

Вы можете обновить базовую информацию о профиле пользователя - отображаемое имя пользователя и URL-адрес фотографии профиля - с updateProfile метода updateProfile . Например:

 var user = firebase.auth().currentUser;

user.updateProfile({
  displayName: "Jane Q. User",
  photoURL: "https://example.com/jane-q-user/profile.jpg"
}).then(function() {
  // Update successful.
}).catch(function(error) {
  // An error happened.
});
 

Установите адрес электронной почты пользователя

Вы можете установить адрес электронной почты пользователя с updateEmail метода updateEmail . Например:

 var user = firebase.auth().currentUser;

user.updateEmail("user@example.com").then(function() {
  // Update successful.
}).catch(function(error) {
  // An error happened.
});
 

Отправить пользователю письмо с подтверждением

Вы можете отправить электронное письмо с подтверждением адреса пользователю с sendEmailVerification метода sendEmailVerification . Например:

 var user = firebase.auth().currentUser;

user.sendEmailVerification().then(function() {
  // Email sent.
}).catch(function(error) {
  // An error happened.
});
 

Вы можете настроить шаблон электронной почты, который используется в разделе Аутентификация консоли Firebase на странице Шаблоны электронной почты. См. Шаблоны электронной почты в Справочном центре Firebase.

Можно также передать состояние через URL-адрес продолжения, чтобы перенаправить обратно в приложение при отправке подтверждающего электронного письма.

Кроме того, вы можете локализовать подтверждающее письмо, обновив код языка в экземпляре Auth перед отправкой письма. Например:

 firebase.auth().languageCode = 'fr';
// To apply the default browser preference instead of explicitly setting it.
// firebase.auth().useDeviceLanguage();
 

Установите пароль пользователя

Вы можете установить пароль пользователя с updatePassword метода updatePassword . Например:

 var user = firebase.auth().currentUser;
var newPassword = getASecureRandomPassword();

user.updatePassword(newPassword).then(function() {
  // Update successful.
}).catch(function(error) {
  // An error happened.
});
 

Отправить письмо для сброса пароля

Вы можете отправить электронное письмо для сброса пароля пользователю с sendPasswordResetEmail метода sendPasswordResetEmail . Например:

 var auth = firebase.auth();
var emailAddress = "user@example.com";

auth.sendPasswordResetEmail(emailAddress).then(function() {
  // Email sent.
}).catch(function(error) {
  // An error happened.
});
 

Вы можете настроить шаблон электронной почты, который используется в разделе Аутентификация консоли Firebase на странице Шаблоны электронной почты. См. Шаблоны электронной почты в Справочном центре Firebase.

Можно также передать состояние через URL-адрес продолжения, чтобы перенаправить обратно в приложение при отправке электронного письма для сброса пароля.

Кроме того, вы можете локализовать электронную почту для сброса пароля, обновив код языка в экземпляре Auth перед отправкой электронной почты. Например:

 firebase.auth().languageCode = 'de';
// To apply the default browser preference instead of explicitly setting it.
// firebase.auth().useDeviceLanguage();
 

Вы также можете отправлять электронные письма для сброса пароля из консоли Firebase.

Удалить пользователя

Вы можете удалить учетную запись пользователя с помощью метода delete . Например:

 var user = firebase.auth().currentUser;

user.delete().then(function() {
  // User deleted.
}).catch(function(error) {
  // An error happened.
});
 

Вы также можете удалить пользователей из раздела «Аутентификация» консоли Firebase на странице «Пользователи».

Повторная аутентификация пользователя

Некоторые важные для безопасности действия, такие как удаление учетной записи , установка основного адреса электронной почты и изменение пароля, требуют, чтобы пользователь недавно выполнил вход. Если вы выполните одно из этих действий, а пользователь выполнил вход слишком давно, действие завершается с ошибкой. Когда это происходит, повторно аутентифицируйте пользователя, получив новые учетные данные от пользователя и передав их в reauthenticateWithCredential . Например:

 var user = firebase.auth().currentUser;
var credential;

// Prompt the user to re-provide their sign-in credentials

user.reauthenticateWithCredential(credential).then(function() {
  // User re-authenticated.
}).catch(function(error) {
  // An error happened.
});
 

Импорт учетных записей пользователей

Вы можете импортировать учетные записи пользователей из файла в проект Firebase, используя команду auth:import в CLI Firebase. Например:

 firebase auth:import users.json --hash-algo=scrypt --rounds=8 --mem-cost=14