Stan zaliczenia w działaniach e-maili

Stan można przekazać za pomocą adresu URL kontynuowania podczas wysyłania działań e-mail dla hasła resetuje lub weryfikuje adres e-mail użytkownika. Dzięki temu użytkownik może wrócone do aplikacji po zakończeniu 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 wymaga zalogowania się. Użytkownik mógł jednak o tym nie zapomnieć. swojego hasła i uruchomić proces resetowania hasła. Na koniec użytkownik oczekuje, że wróci do tej sekcji, które próbujesz uzyskać.

  • Aplikacja może oferować dostęp tylko do zweryfikowanych kont. 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 przez e-maila i oczekuje, wróci do aplikacji, aby dokończyć subskrypcję.

  • 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 typu „Dalej” to zaawansowana funkcja, Zapewnia, że funkcja Uwierzytelnianie Firebase może znacznie zwiększyć wygodę użytkowników.

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. Możesz to zrobić w sekcji Uwierzytelnianie przez dodanie tej domeny do listę Autoryzowanych domen na karcie Metoda logowania, jeśli jeszcze się tam nie znajduje.

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 Podano identyfikator pakietu, a wartość w tym polu jest ustawiona na identyfikator pakietu 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 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 Ciąg znaków Minimalna wersja aplikacji obsługiwana w tym procesie. Jeśli minimalna wersja jest określona i zainstalowana starsza wersja aplikacji, użytkownik trafia do Sklepu Play, gdzie może uaktualnić aplikację. Aplikacja na Androida musi być zarejestrowana w konsoli.
handleCodeInApp Wartość logiczna to, czy link do działania w e-mailu będzie otwierany w aplikacji mobilnej czy na stronie internetowej. . Wartość domyślna to false (fałsz). Jeśli zasada ma wartość Prawda, link do kodu działania zostanie wysłana jako uniwersalny link lub link aplikacji na Androida i zostanie otwarta przez aplikację, jeśli jest zainstalowana. W przeciwnym razie kod zostanie wysłany do widżet internetowy, a następnie „Dalej” przekierowuje do aplikacji, jeśli Zainstalowano.
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. Jako wiele dynamicznych domen linków można skonfigurować dla poszczególnych projektów. To pole udostępnia nie można ich jednoznacznie wybrać. Jeśli nie zostanie podana żadna, pierwsza domena jest stosowany domyślnie.

Objective-C

Parametr Typ Opis
URL NSString

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 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 WARTOŚĆ 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 minimalna wersja jest określona i zainstalowana jest starsza wersja aplikacji, użytkownik trafia do Sklepu Play, gdzie może uaktualnić aplikację. Aplikacja na Androida musi być zarejestrowana w konsoli.
handleCodeInApp WARTOŚĆ to, czy link do działania w e-mailu będzie otwierany w aplikacji mobilnej czy na stronie internetowej. . Wartość domyślna to false (fałsz). Jeśli zasada ma wartość Prawda, link do kodu działania zostanie wysłana jako uniwersalny link lub link aplikacji na Androida i zostanie otwarta przez aplikację, jeśli jest zainstalowana. W przeciwnym razie kod zostanie wysłany do widżet internetowy, a następnie „Dalej” przekierowuje do aplikacji, jeśli Zainstalowano.
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 ich jednoznacznie wybrać. Jeśli nie zostanie podana żadna, pierwsza domena jest stosowany domyślnie.

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 Linki dynamiczne należy skonfigurować 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 masz już utworzoną domenę Dynamic Links, zanotuj ją. Dynamic Links domena zwykle wygląda tak:

      example.page.link

      Ta wartość będzie potrzebna podczas konfigurowania aplikacji na Apple lub Androida przechwytywać link przychodzący.

  2. Konfigurowanie aplikacji na Androida:

    1. Jeśli planujesz obsługę tych linków w aplikacji na Androida, Nazwę pakietu na Androida trzeba określić w konsoli Firebase ustawieniach projektu. Dodatkowo SHA-1 i SHA-256 aplikacji i dostarczyć certyfikat.
    2. Musisz też skonfigurować filtr intencji dla precyzyjnego linku w w pliku AndroidManifest.xml.
    3. Więcej informacji: Instrukcje dotyczące Linków dynamicznych na Androidzie.
  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 identyfikator App Store i identyfikator Apple Trzeba też podać identyfikator zespołu.
    2. Musisz też skonfigurować domenę uniwersalnego linku FDL jako Powiązana domena 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. Można to zrobić, ustawiając handleCodeInApp na false w Obiekt FIRActionCodeSettings (Obj-C) lub ActionCodeSettings (Swift). Choć identyfikator pakietu lub nazwę pakietu na Androida nie są wymagane, jej podanie pozwoli użytkownikowi , aby przekierowywać użytkownika z powrotem do określonej aplikacji po uzupełnieniu kodu działania e-mailem.

Użyty tutaj URL strony internetowej jest skonfigurowany w szablonach działań e-mail . Domyślna jest udostępniona dla wszystkich projektów. Więcej informacji: dostosowywaniu modułów obsługi poczty e-mail, aby dowiedzieć się więcej jak dostosować moduł obsługi działań poczty e-mail.

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 przechwytywać i obsługiwać linki przychodzące z aplikacji bez żadnych dodatkowych zależności, zalecamy użycie biblioteki klienta FDL do przeanalizuj precyzyjny link.

Podczas obsługi czynności związanych z pocztą e-mail, takich jak potwierdzanie adresu e-mail, kod działania z sekcji Parametr zapytania oobCode musi zostać przeanalizowany z precyzyjnego linku, a następnie zastosowany przesłać e-mailem applyActionCode, aby zmiana zaczęła obowiązywać, czyli na adres e-mail w celu weryfikacji.

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

Możesz określić, czy link z kodem działania ma być obsługiwany w sekcji aplikacja mobilna, 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 został kliknięty na urządzeniu, które nie obsługuje telefonu komórkowego aplikacji, jest otwierany 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: dostosowywaniu modułów obsługi poczty e-mail, aby dowiedzieć się więcej jak dostosować moduł obsługi działań poczty e-mail.

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 czynności związanych z pocztą e-mail, takich jak potwierdzanie adresu e-mail, kod działania z sekcji Parametr zapytania oobCode musi zostać przeanalizowany z precyzyjnego linku, a następnie zastosowany przesłać e-mailem applyActionCode, aby zmiana zaczęła obowiązywać, czyli na adres e-mail w celu weryfikacji.