Rozszerzanie uwierzytelniania Firebase za pomocą Cloud Functions

Możesz aktywować funkcje w odpowiedzi na utworzenie lub usunięcie Firebase Authentication kont użytkowników. Możesz na przykład wysłać e-maila powitalnego do użytkownika, który właśnie utworzył konto w Twojej aplikacji. Przykłady na tej stronie są oparte na próbce, która robi dokładnie to – wysyła e-maile powitalne i pożegnalne po utworzeniu i usunięciu konta.

Więcej przykładów zastosowań znajdziesz w artykule Co mogę zrobić za pomocą Cloud Functions?.

Aktywowanie funkcji po utworzeniu użytkownika

Możesz utworzyć funkcję, która będzie aktywowana, gdy użytkownik Authentication zostanie utworzony za pomocą functions.auth.user().onCreate() modułu obsługi zdarzeń:

exports.sendWelcomeEmail = functions.runWith({secrets: [gmailPassword]}).auth.user().onCreate((user) => {
  // ...
});

Konta Authentication będą aktywować zdarzenia tworzenia użytkowników w Cloud Functions gdy:

  • użytkownik utworzy konto e-mail i hasło;
  • użytkownik zaloguje się po raz pierwszy za pomocą sfederowanego dostawcy tożsamości;
  • programista utworzy konto za pomocą pakietu Firebase Admin SDK;
  • użytkownik zaloguje się po raz pierwszy w nowej anonimowej sesji uwierzytelniania.

Zdarzenie Cloud Functions jest nie aktywowane, gdy użytkownik loguje się po raz pierwszy za pomocą niestandardowego tokena.

Dostęp do atrybutów użytkownika

Z danych użytkownika zwróconych do funkcji możesz uzyskać dostęp do listy atrybutów użytkownika dostępnych w obiekcie UserRecord nowo utworzonego użytkownika. Możesz na przykład uzyskać adres e-mail i nazwę wyświetlaną użytkownika, jak pokazano poniżej:

const email = user.email; // The email of the user.
const displayName = user.displayName; // The display name of the user.

Aktywowanie funkcji po usunięciu użytkownika

Podobnie jak w przypadku tworzenia użytkownika, możesz aktywować funkcję w odpowiedzi na zdarzenia usunięcia użytkownika. Użyj modułu obsługi zdarzeń functions.auth.user().onDelete() w sposób pokazany poniżej:

exports.sendByeEmail = functions.runWith({secrets: [gmailPassword]}).auth.user().onDelete((user) => {
  // ...
});

Aktywowanie funkcji blokujących

Jeśli masz Firebase Authentication with Identity Platform, możesz rozszerzyć Firebase Authentication za pomocą blokujących Cloud Functions.

Dzięki funkcjom blokowania możesz uruchamiać niestandardowy kod, który zmienia reakcję aplikacji na zarejestrowanie się lub zalogowanie użytkownika. Możesz na przykład uniemożliwić uwierzytelnienie użytkownika, jeśli nie spełnia on określonych kryteriów, lub zaktualizować informacje o użytkowniku przed zwróceniem ich do aplikacji klienckiej.