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.
|
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:
|
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. }];
Konfigurowanie Linków dynamicznych Firebase
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.
Włącz Linki dynamiczne Firebase:
- W konsoli Firebase otwórz sekcję Dynamic Links.
-
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.
Konfigurowanie aplikacji na Androida:
- 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.
- Musisz też skonfigurować filtr intencji dla precyzyjnego linku w pliku AndroidManifest.xml.
- Więcej informacji znajdziesz w instrukcjach odbierania linków dynamicznych na Androida.
Konfigurowanie aplikacji Apple:
- 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.
- Musisz też skonfigurować domenę uniwersalnego linka FDL jako domenę powiązaną w możliwościach aplikacji.
- 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.
- 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.