Stan zaliczenia w działaniach e-maili

Stan można przekazać za pomocą adresu URL kontynuowania podczas wysyłania działań e-mail dotyczących hasła resetuje lub weryfikuje adres e-mail użytkownika. Dzięki temu użytkownik może wrócić do aplikacji po wykonaniu działania. Możesz też określić czy link do działania e-maila ma być obsługiwany bezpośrednio z aplikacji mobilnej, jest zainstalowany zamiast strony internetowej.

Może to być bardzo przydatne w tych typowych sytuacjach:

  • Użytkownik, który nie jest obecnie zalogowany, może próbować uzyskać dostęp do treści, które wymagają zalogowania. Użytkownik mógł jednak o tym nie zapomnieć. swojego hasła i uruchomić proces resetowania hasła. Na końcu procesu użytkownik powinien wrócić do sekcji aplikacji, do której próbował uzyskać dostęp.

  • Aplikacja może oferować dostęp tylko zweryfikowanym kontom. Dla: Na przykład aplikacja do obsługi newslettera może wymagać od użytkownika weryfikacji adresu e-mail przed zasubskrybowanie kanału. Użytkownik przechodzi proces weryfikacji e-maila i oczekuje, że po zakończeniu subskrypcji wróci do aplikacji.

  • Ogólnie rzecz biorąc, gdy użytkownik rozpocznie proces resetowania hasła lub weryfikacji adresu e-mail aplikację Apple, która chce ukończyć proces w aplikacji; możliwość Jest to możliwe dzięki przekazywaniu stanu za pomocą adresu URL kontynuowania.

Możliwość przekazywania stanu za pomocą adresu URL kontynuacji to przydatna funkcja, którą udostępnia Firebase Auth i która może znacznie poprawić wrażenia użytkownika.

Adres URL przekazywania stanu/kontynuowania w działaniach związanych z e-mailami

Aby bezpiecznie przekazywać adres URL kontynuacji, domena tego adresu musi: znajdują się na białej liście w konsoli Firebase. Aby to zrobić, w sekcji Uwierzytelnianie dodaj tę domenę do listy Autoryzowane domeny na karcie Metoda logowania, jeśli nie ma jej tam jeszcze.

Podczas wysyłania musisz podać instancję FIRActionCodeSettings wiadomość e-mail do zresetowania hasła lub e-mail weryfikacyjny. Ten interfejs przyjmuje następujące parametry:

Swift

Parametr Typ Opis
URL Ciąg znaków

Określa link (adres URL stanu/kontynuacji), który ma różne znaczenie w różnych kontekstach.

  • Obsługa linku w widżetach akcji internetowych powoduje, że jest to precyzyjny w parametrze zapytania continueUrl.
  • Jeśli link jest obsługiwany bezpośrednio w aplikacji, jest to wartość continueUrl parametru zapytania w precyzyjnym linku Link dynamiczny.
iOSBundleID Ciąg znaków Ustawia identyfikator pakietu. Spowoduje to próbę otwarcia linku w aplikacji Apple, jeśli jest zainstalowana. Aplikacja musi być zarejestrowana w Konsoli. Jeśli nie podasz identyfikatora pakietu, wartość tego pola zostanie ustawiona na identyfikator głównego pakietu aplikacji.
androidPackageName Ciąg znaków Określa nazwę pakietu na Androida. Spowoduje to próbę otwarcia linku w Android, jeśli jest zainstalowana.
androidInstallIfNotAvailable Wartość logiczna Określa, czy zainstalować aplikację na Androida, jeśli urządzenie ją obsługuje i nie jest jeszcze zainstalowana. Jeśli to pole zostanie podane bez nazwy pakietu, zostanie wyświetlony błąd informujący, że nazwa pakietu musi być podana w połączeniu z tym polem.
androidMinimumVersion Ciąg znaków Minimalna wersja aplikacji obsługiwana w tym procesie. Jeśli parametr minimumVersion jest określony, a zainstalowana jest starsza wersja aplikacji, użytkownik zostanie przekierowany do Sklepu Play, aby zaktualizować aplikację. Aplikacja na Androida musi być zarejestrowana w Konsoli.
handleCodeInApp Wartość logiczna Określa, czy link do działania w e-mailu będzie otwierany w aplikacji mobilnej czy na stronie internetowej . Wartość domyślna to fałsz. Jeśli ta opcja ma wartość Prawda, link kodu działania będzie wysyłany jako uniwersalny link lub link aplikacji na Androida i będzie otwierany przez aplikację, jeśli jest zainstalowana. W przypadku fałszywego wyniku kod zostanie najpierw wysłany do widżetu internetowego, a potem przekieruje do aplikacji, jeśli jest zainstalowana.
dynamicLinkDomain Ciąg znaków Określa domenę (lub subdomenę) linku dynamicznego, która będzie używana w przypadku bieżącego linku jeśli ma się otworzyć za pomocą Linków dynamicznych Firebase. W przypadku każdego projektu można skonfigurować wiele dynamicznych domen linków, więc w tym polu możesz wybrać jedną z nich. Jeśli nie zostanie podana żadna, pierwsza domena jest stosowany domyślnie.

Objective-C

Parametr Typ Opis
URL NSString

Ustawia link (URL stanu lub kontynuacji), który ma różne znaczenia w zależności od kontekstu:

  • Obsługa linku w widżetach akcji internetowych powoduje, że jest to precyzyjny w parametrze zapytania continueUrl.
  • Jeśli link jest obsługiwany bezpośrednio w aplikacji, jest to wartość continueUrl parametru zapytania w precyzyjnym linku Link dynamiczny.
iOSBundleID NSString Ustawia identyfikator pakietu. Spowoduje to próbę otwarcia linku w aplikacji Apple, jeśli jest zainstalowana. Aplikacja musi być zarejestrowana w Konsoli.
androidPackageName NSString Określa nazwę pakietu na Androida. Spowoduje to próbę otwarcia linku w Android, jeśli jest zainstalowana.
androidInstallIfNotAvailable BOOL określa, czy zainstalować aplikację na Androida, jeśli urządzenie ją obsługuje a aplikacja nie jest jeszcze zainstalowana. Jeśli to pole jest podane bez atrybutu packageName, pojawia się błąd wyjaśniający, że atrybut packageName musi być podane w połączeniu z tym polem.
androidMinimumVersion NSString Minimalna wersja aplikacji obsługiwana w tym procesie. Jeśli apka jest oznaczona atrybutem minimumVersion, a użytkownik ma zainstalowaną jej starszą wersję, zostanie przekierowany do Sklepu Play, aby zaktualizować aplikację. Aplikacja na Androida musi być zarejestrowana w Konsoli.
handleCodeInApp BOOL Określa, czy link do działania w e-mailu ma się najpierw otworzyć w aplikacji mobilnej, czy w przeglądarce. Wartość domyślna to fałsz. Jeśli ta opcja ma wartość Prawda, link kodu działania będzie wysyłany jako uniwersalny link lub link aplikacji na Androida i będzie otwierany przez aplikację, jeśli jest zainstalowana. W przypadku fałszywego wyniku kod zostanie najpierw wysłany do widżetu internetowego, a potem przekieruje do aplikacji, jeśli jest zainstalowana.
dynamicLinkDomain NSString Określa domenę (lub subdomenę) linku dynamicznego, która będzie używana w przypadku bieżącego linku jeśli ma się otworzyć za pomocą Linków dynamicznych Firebase. Jako wiele dynamicznych domen linków można skonfigurować dla poszczególnych projektów. To pole udostępnia nie można bezpośrednio wybrać jednego z nich. Jeśli nie podasz żadnej domeny, domyślnie będzie używana pierwsza domena.

Poniższy przykład pokazuje, jak wysłać e-mail weryfikacyjny link, który najpierw otworzy się w aplikacji mobilnej jako link dynamiczny Firebase, wykorzystując niestandardowy domena linku dynamicznego example.page.link (Aplikacja na iOS: com.example.ios lub aplikacja na Androida com.example.android, zostanie zainstalowany, jeśli nie jest jeszcze zainstalowany, a minimalna wersja to 12. precyzyjny link będzie zawierał ładunek adresu URL „continue” https://www.example.com/?email=user@example.com.

Swift


var actionCodeSettings =  ActionCodeSettings.init()
actionCodeSettings.canHandleInApp = true
let user = Auth.auth().currentUser()
actionCodeSettings.URL =
    String(format: "https://www.example.com/?email=%@", user.email)
actionCodeSettings.iOSbundleID = Bundle.main.bundleIdentifier!
actionCodeSettings.setAndroidPakageName("com.example.android",
                                         installIfNotAvailable:true,
                                         minimumVersion:"12")
// When multiple custom dynamic link domains are defined, specify which one to use.
actionCodeSettings.dynamicLinkDomain = "example.page.link"
user.sendEmailVerification(withActionCodeSettings:actionCodeSettings { error in
  if error {
    // Error occurred. Inspect error.code and handle error.
    return
  }
  // Email verification sent.
})

Objective-C

 FIRActionCodeSettings *actionCodeSettings = [[FIRActionCodeSettings alloc] init];
 actionCodeSettings.handleCodeInApp = YES;
 FIRUser *user = [FIRAuth auth].currentUser;
 NSString *urlString =
     [NSString stringWithFormat:@"https://www.example.com/?email=%@", user.email];
 actionCodeSettings.URL = [NSURL URLWithString:urlString];
 actionCodeSettings.iOSBundleID = [NSBundle mainBundle].bundleIdentifier;
 // When multiple custom dynamic link domains are defined, specify which one to use.
 actionCodeSettings.dynamicLinkDomain = @"example.page.link";
 [actionCodeSettings setAndroidPackageName:@"com.example.android"
                     installIfNotAvailable:YES
                            minimumVersion:'12'];
 [user sendEmailVerificationWithActionCodeSettings:actionCodeSettings
                                        completion:^(NSError *_Nullable error) {
   if (error) {
     // Error occurred. Inspect error.code and handle error.
     return;
   }
   // Email verification sent.
 }];

Uwierzytelnianie Firebase używa Linków dynamicznych Firebase do wysyłania który powinien być otwierany w aplikacji mobilnej. Aby korzystać z tej funkcji, musisz skonfigurować linki dynamiczne w konsoli Firebase.

  1. Włącz Linki dynamiczne Firebase:

    1. W konsoli Firebase otwórz sekcję Dynamic Links.
    2. Jeśli warunki usługi Dynamic Links nie zostały jeszcze przez Ciebie zaakceptowane, a Dynamic Links nie zostało utworzone domeny, zrób to teraz.

      Jeśli domena Dynamic Links została już utworzona, zanotuj ją. Domena Dynamic Linkszazwyczaj wygląda tak:

      example.page.link

      Będzie ona potrzebna podczas konfigurowania aplikacji na urządzenia z systemem Android lub Apple w celu przechwytywania przychodzących linków.

  2. Konfigurowanie aplikacji na Androida:

    1. Jeśli planujesz obsługiwać te linki w aplikacji na Androida, musisz podać nazwę pakietu Androida w ustawieniach projektu w Konsoli Firebase. Dodatkowo SHA-1 i SHA-256 aplikacji i dostarczyć certyfikat.
    2. Musisz też skonfigurować filtr intencji dla precyzyjnego linku w pliku AndroidManifest.xml.
    3. Więcej informacji znajdziesz w instrukcjach odbierania linków dynamicznych na Androida.
  3. Konfigurowanie aplikacji Apple:

    1. Jeśli planujesz obsługę tych linków z poziomu aplikacji, należy określić identyfikator pakietu w konsoli Firebase ustawieniach projektu. Dodatkowo musisz podać identyfikator App Store i identyfikator zespołu deweloperów Apple.
    2. Musisz też skonfigurować domenę uniwersalnego linka FDL jako domenę powiązaną w możliwościach aplikacji.
    3. Jeśli planujesz dystrybuować swoją aplikację na iOS w wersji 8 lub starszej, musisz ustawić identyfikator pakietu jako schemat niestandardowy dla przychodzących Adresy URL.
    4. Więcej informacji: Instrukcje dotyczące linków dynamicznych platform Apple.

Obsługa działań dotyczących poczty e-mail w aplikacji internetowej

Możesz określić, czy link z kodem działania ma być obsługiwany w internecie najpierw aplikacji, a następnie przekieruj do innej strony internetowej lub aplikacji mobilnej pod warunkiem, że aplikacja mobilna będzie dostępna. Aby to zrobić, ustaw wartość handleCodeInApp na false w obiekcie FIRActionCodeSettings (Obj-C) lub ActionCodeSettings (Swift). Identyfikator pakietu ani nazwa pakietu na Androida nie są wymagane, ale ich podanie pozwoli użytkownikowi wrócić do określonej aplikacji po wykonaniu kodu działania e-maila.

Adres URL witryny użyty w tym miejscu to adres skonfigurowany w sekcji Szablony działań e-mail. Domyślna jest udostępniona dla wszystkich projektów. Więcej informacji o dostosowywaniu elementu przetwarzającego działanie dotyczące e-maila znajdziesz w artykule [GA4] Dostosowywanie elementów przetwarzających działanie dotyczące e-maila.

W tym przypadku link w parametrze zapytania continueURL będzie miał postać link FDL, którego ładunek to URL określony w ActionCodeSettings obiektu. Możesz przechwycić i obsługiwać przychodzący link z aplikacji bez dodatkowych zależności, ale zalecamy użycie biblioteki klienta FDL, aby parsować precyzyjny link.

Podczas obsługi działań związanych z e-mailem, takich jak weryfikacja adresu e-mail, kod działania z parametru zapytania oobCode musi zostać przeanalizowany z precyzyjnego linku, a następnie zastosowany za pomocą applyActionCode, aby zmiana mogła zacząć obowiązywać, czyli aby adres e-mail został zweryfikowany.

Obsługa działań poczty e-mail w aplikacji mobilnej

Możesz określić, czy najpierw chcesz obsłużyć link do kodu działania w aplikacji mobilnej (o ile jest zainstalowana). Aplikacje na Androida możesz też określić za pomocą androidInstallIfNotAvailable, aplikacja ma zostać zainstalowana, jeśli urządzenie obsługuje tę funkcję i jeszcze nie jest. Zainstalowano. Jeśli link zostanie kliknięty na urządzeniu, które nie obsługuje aplikacji mobilnej, zostanie otwarty na stronie internetowej. Można to zrobić, ustawiając handleCodeInApp na true w Obiekt FIRActionCodeSettings (Obj-C) lub ActionCodeSettings (Swift). nazwę pakietu na Androida lub identyfikator pakietu aplikacji mobilnej również należy określony URL.Jeśli tu nie ma aplikacji mobilnej, używany tutaj zastępczy URL skonfigurowany w sekcji szablonów działań e-mail. Wartość domyślna to udostępnione we wszystkich projektach. Więcej informacji o dostosowywaniu elementu przetwarzającego działanie e-maila znajdziesz w artykule [GA4] Dostosowywanie elementów przetwarzających działanie e-maila.

W tym przypadku link do aplikacji mobilnej wysłany do użytkownika będzie linkiem FDL, którego to adres URL kodu działania skonfigurowany w konsoli, zawierający zapytanie parametry oobCode, mode, apiKey i continueUrl. Ten ostatni będzie oryginalny URL określony w FIRActionCodeSettings (Obj-C) lub Obiekt ActionCodeSettings (Swift). Możesz przechwytywać i obsługiwać link przychodzący z aplikacji bez żadnych dodatkowych zależności, zalecamy, za pomocą biblioteki klienta FDL w celu przeanalizowania precyzyjnego linku. Kod działania może być stosowane bezpośrednio z poziomu aplikacji mobilnej, podobnie jak w przypadku zgodnie z instrukcjami w witrynie dostosowywania modułów obsługi poczty e-mail.

Podczas obsługi działań związanych z e-mailem, takich jak weryfikacja adresu e-mail, kod działania z parametru zapytania oobCode musi zostać przeanalizowany z precyzyjnego linku, a następnie zastosowany za pomocą parametru applyActionCode, aby zmiana mogła zacząć obowiązywać, czyli aby adres e-mail został zweryfikowany.