Catch up on everything we announced at this year's Firebase Summit. Learn more

Firebase'de Kullanıcıları Yönetin

Kullanıcı oluştur

Sen arayarak Firebase projesinde yeni bir kullanıcı oluşturmak createUserWithEmailAndPassword yöntem veya gibi bir birleşik kimlik sağlayıcı kullanarak ilk kez bir kullanıcı oturum açarak Google Oturum Açma veya Facebook Login .

Ayrıca Kimlik Doğrulama bölümüne yeni şifre doğrulanmış kullanıcıları oluşturabilir Firebase konsolunun Kullanıcılar sayfasında veya kullanarak, Yönetici SDK'yı .

Şu anda oturum açmış olan kullanıcıyı alın

Geçerli kullanıcıyı almanın önerilen yolu, Auth nesnesinde bir gözlemci ayarlamaktır:

Web sürümü 9

import { getAuth, onAuthStateChanged } from "firebase/auth";

const auth = getAuth();
onAuthStateChanged(auth, (user) => {
  if (user) {
    // User is signed in, see docs for a list of available properties
    // https://firebase.google.com/docs/reference/js/firebase.User
    const uid = user.uid;
    // ...
  } else {
    // User is signed out
    // ...
  }
});

Web sürümü 8

firebase.auth().onAuthStateChanged((user) => {
  if (user) {
    // User is signed in, see docs for a list of available properties
    // https://firebase.google.com/docs/reference/js/firebase.User
    var uid = user.uid;
    // ...
  } else {
    // User is signed out
    // ...
  }
});

Bir gözlemci kullanarak, geçerli kullanıcıyı aldığınızda Auth nesnesinin bir ara durumda (başlatma gibi) olmadığından emin olursunuz. Eğer kullandığınız zaman signInWithRedirect , onAuthStateChanged kadar gözlemci bekler getRedirectResult tetikleme önce giderir.

Ayrıca kullanarak şu anda oturum açmış kullanıcının alabilirsiniz currentUser özelliği. Bir kullanıcı oturum açtıktan değilse, currentUser null:

Web sürümü 9

import { getAuth } from "firebase/auth";

const auth = getAuth();
const user = auth.currentUser;

if (user) {
  // User is signed in, see docs for a list of available properties
  // https://firebase.google.com/docs/reference/js/firebase.User
  // ...
} else {
  // No user is signed in.
}

Web sürümü 8

const user = firebase.auth().currentUser;

if (user) {
  // User is signed in, see docs for a list of available properties
  // https://firebase.google.com/docs/reference/js/firebase.User
  // ...
} else {
  // No user is signed in.
}

Bir kullanıcının profilini alın

Bir kullanıcının profil bilgilerini elde etmek için, bir örneğinin özelliklerini kullanmak User . Örneğin:

Web sürümü 9

import { getAuth } from "firebase/auth";

const auth = getAuth();
const user = auth.currentUser;
if (user !== null) {
  // The user object has basic properties such as display name, email, etc.
  const displayName = user.displayName;
  const email = user.email;
  const photoURL = user.photoURL;
  const emailVerified = user.emailVerified;

  // 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.
  const uid = user.uid;
}

Web sürümü 8

const user = firebase.auth().currentUser;
if (user !== null) {
  // The user object has basic properties such as display name, email, etc.
  const displayName = user.displayName;
  const email = user.email;
  const photoURL = user.photoURL;
  const emailVerified = user.emailVerified;

  // 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.
  const uid = user.uid;
}

Bir kullanıcının sağlayıcıya özel profil bilgilerini alın

Alınan profil bilgilerini almak için oturum açma bir kullanıcıya bağlı sağlayıcılar, kullanmak providerData özelliğini. Örneğin:

Web sürümü 9

import { getAuth } from "firebase/auth";

const auth = getAuth();
const user = auth.currentUser;

if (user !== null) {
  user.providerData.forEach((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);
  });
}

Web sürümü 8

const user = firebase.auth().currentUser;

if (user !== null) {
  user.providerData.forEach((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);
  });
}

Bir kullanıcının profilini güncelleme

Bir kullanıcının temel profil bilgileri-kullanıcının görünen adı ve profil fotoğraf URL'sini-ile güncelleyebilirsiniz updateProfile yöntemiyle. Örneğin:

Web sürümü 9

import { getAuth, updateProfile } from "firebase/auth";
const auth = getAuth();
updateProfile(auth.currentUser, {
  displayName: "Jane Q. User", photoURL: "https://example.com/jane-q-user/profile.jpg"
}).then(() => {
  // Profile updated!
  // ...
}).catch((error) => {
  // An error occurred
  // ...
});

Web sürümü 8

const user = firebase.auth().currentUser;

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

Bir kullanıcının e-posta adresini ayarlayın

Sen bir kullanıcının e-posta adresini ayarlayabilirsiniz updateEmail yöntemiyle. Örneğin:

Web sürümü 9

import { getAuth, updateEmail } from "firebase/auth";
const auth = getAuth();
updateEmail(auth.currentUser, "user@example.com").then(() => {
  // Email updated!
  // ...
}).catch((error) => {
  // An error occurred
  // ...
});

Web sürümü 8

const user = firebase.auth().currentUser;

user.updateEmail("user@example.com").then(() => {
  // Update successful
  // ...
}).catch((error) => {
  // An error occurred
  // ...
});

Bir kullanıcıya doğrulama e-postası gönderin

Sen bir kullanıcıya bir adres doğrulama e-posta gönderebilirsiniz sendEmailVerification yöntemiyle. Örneğin:

Web sürümü 9

import { getAuth, sendEmailVerification } from "firebase/auth";

const auth = getAuth();
sendEmailVerification(auth.currentUser)
  .then(() => {
    // Email verification sent!
    // ...
  });

Web sürümü 8

firebase.auth().currentUser.sendEmailVerification()
  .then(() => {
    // Email verification sent!
    // ...
  });

Sen Kimlik Doğrulama bölümünde kullanılan e-posta şablonunu özelleştirebilirsiniz Firebase konsolunun E-posta Şablonları sayfasında,. Bkz E-posta şablonları Firebase Yardım Merkezi'nde.

Bir yoluyla devlet geçmek de mümkündür URL'yi devam bir doğrulama e gönderirken app geri yönlendirmek için.

Ayrıca, e-postayı göndermeden önce Auth örneğindeki dil kodunu güncelleyerek doğrulama e-postasını yerelleştirebilirsiniz. Örneğin:

Web sürümü 9

import { getAuth } from "firebase/auth";

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

Web sürümü 8

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

Bir kullanıcının şifresini belirleyin

Sen bir kullanıcının şifresini ayarlayabilirsiniz updatePassword yöntemiyle. Örneğin:

Web sürümü 9

import { getAuth, updatePassword } from "firebase/auth";

const auth = getAuth();

const user = auth.currentUser;
const newPassword = getASecureRandomPassword();

updatePassword(user, newPassword).then(() => {
  // Update successful.
}).catch((error) => {
  // An error ocurred
  // ...
});

Web sürümü 8

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

user.updatePassword(newPassword).then(() => {
  // Update successful.
}).catch((error) => {
  // An error ocurred
  // ...
});

Parola sıfırlama e-postası gönder

Sen bir kullanıcıya bir parola sıfırlama e-posta gönderebilir sendPasswordResetEmail yöntemiyle. Örneğin:

Web sürümü 9

import { getAuth, sendPasswordResetEmail } from "firebase/auth";

const auth = getAuth();
sendPasswordResetEmail(auth, email)
  .then(() => {
    // Password reset email sent!
    // ..
  })
  .catch((error) => {
    const errorCode = error.code;
    const errorMessage = error.message;
    // ..
  });

Web sürümü 8

firebase.auth().sendPasswordResetEmail(email)
  .then(() => {
    // Password reset email sent!
    // ..
  })
  .catch((error) => {
    var errorCode = error.code;
    var errorMessage = error.message;
    // ..
  });

Sen Kimlik Doğrulama bölümünde kullanılan e-posta şablonunu özelleştirebilirsiniz Firebase konsolunun E-posta Şablonları sayfasında,. Bkz E-posta şablonları Firebase Yardım Merkezi'nde.

Bir yoluyla devlet geçmek de mümkündür URL'yi devam parola sıfırlama e-posta gönderirken app geri yönlendirmek için.

Ayrıca, e-postayı göndermeden önce Yetkilendirme örneğindeki dil kodunu güncelleyerek parola sıfırlama e-postasını yerelleştirebilirsiniz. Örneğin:

Web sürümü 9

import { getAuth } from "firebase/auth";

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

Web sürümü 8

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

Firebase konsolundan parola sıfırlama e-postaları da gönderebilirsiniz.

Bir kullanıcıyı sil

Sen sahip bir kullanıcı hesabı silebilirsiniz delete yöntemiyle. Örneğin:

Web sürümü 9

import { getAuth, deleteUser } from "firebase/auth";

const auth = getAuth();
const user = auth.currentUser;

deleteUser(user).then(() => {
  // User deleted.
}).catch((error) => {
  // An error ocurred
  // ...
});

Web sürümü 8

const user = firebase.auth().currentUser;

user.delete().then(() => {
  // User deleted.
}).catch((error) => {
  // An error ocurred
  // ...
});

Sen Ayrıca Kimlik Doğrulama bölümünden silme kullanıcılar Firebase konsolundaki Kullanıcılar sayfasında,.

Bir kullanıcının kimliğini yeniden doğrulama

Bazı güvenlik duyarlı eylemleri-gibi bir hesap silme , birincil e-posta adresi ayarlama ve şifre değiştirme kullanıcı son zamanlarda içinde imzaladığını -require. Bu eylemlerden birini gerçekleştirin ve kullanıcı önce, çok uzun imzalanmasının eylem bir hatayla başarısız olur. Bu durumda, yeni oturum açma kullanıcıdan kimlik alma ve kimlik bilgilerini ileterek kullanıcının yeniden kimlik doğrulaması reauthenticateWithCredential . Örneğin:

Web sürümü 9

import { getAuth, reauthenticateWithCredential } from "firebase/auth";

const auth = getAuth();
const user = auth.currentUser;

// TODO(you): prompt the user to re-provide their sign-in credentials
const credential = promptForCredentials();

reauthenticateWithCredential(user, credential).then(() => {
  // User re-authenticated.
}).catch((error) => {
  // An error ocurred
  // ...
});

Web sürümü 8

const user = firebase.auth().currentUser;

// TODO(you): prompt the user to re-provide their sign-in credentials
const credential = promptForCredentials();

user.reauthenticateWithCredential(credential).then(() => {
  // User re-authenticated.
}).catch((error) => {
  // An error ocurred
  // ...
});

Kullanıcı hesaplarını içe aktar

Sen Firebase Cli en kullanarak Firebase projeye bir dosyadan kullanıcı hesaplarını alabilirsiniz auth:import komutu. Örneğin:

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