Stan za pomocą adresu URL kontynuacji możesz przekazywać podczas wysyłania e-maili z działaniami związanymi z resetowaniem hasła lub weryfikacją adresu e-mail użytkownika. Dzięki temu użytkownik może wrócić do aplikacji po wykonaniu działania. Dodatkowo możesz określić, czy link do działania e-maila ma być obsługiwany bezpośrednio z poziomu aplikacji mobilnej, gdy jest ona zainstalowana, a nie na stronie 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ą od niego zalogowania. Użytkownik mógł jednak zapomnieć hasło i w związku z tym aktywować procedurę resetowania. Pod koniec procesu użytkownik oczekuje, że wróci do sekcji aplikacji, do której chce uzyskać dostęp.
Aplikacja może oferować dostęp tylko do zweryfikowanych kont. Na przykład aplikacja do obsługi newslettera może wymagać od użytkownika potwierdzenia adresu e-mail przed wykupieniem subskrypcji. Użytkownik przechodzi przez proces weryfikacji e-mailowej i oczekuje, że wróci do aplikacji, aby dokończyć subskrypcję.
Ogólnie rzecz biorąc, gdy użytkownik rozpoczyna proces resetowania hasła lub potwierdzania adresu e-mail w aplikacji Apple, oczekuje, że zakończy to w aplikacji. Jest to możliwe dzięki przekazywaniu stanu za pomocą adresu URL przejścia.
Uwierzytelnianie Firebase pozwala na przekazywanie stanu za pomocą adresu URL kontynuowania i 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 znajdować się na liście dozwolonych w konsoli Firebase. Możesz to zrobić w sekcji Uwierzytelnianie przez dodanie tej domeny do listy Autoryzowane domeny na karcie Metoda logowania, jeśli jeszcze się tam nie znajduje.
Podczas wysyłania e-maila do resetowania hasła lub e-maila weryfikacyjnego musisz podać instancję ActionCodeSettings
. Interfejs ten przyjmuje następujące parametry:
Parametr | Typ | Opis |
---|---|---|
url |
Ciąg znaków | Ustawia link (adres URL stanu/kontynuacji), który ma różne znaczenia w różnych kontekstach:
|
iOSBundleId |
Ciąg znaków | Ustawia identyfikator pakietu. Spowoduje to próbę otwarcia linku w aplikacji Apple, jeśli jest ona zainstalowana. Aplikacja musi być zarejestrowana w konsoli. Jeśli nie podasz identyfikatora pakietu, 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 aplikacji na Androida, jeśli jest zainstalowana. |
androidInstallApp |
wartość logiczna | Określa, czy zainstalować aplikację na Androida, jeśli urządzenie ją obsługuje, a aplikacja nie jest jeszcze zainstalowana. Jeśli podasz to pole bez wartości packageName, pojawi się błąd wyjaśniający, że w połączeniu z tym polem należy podać wartość packageName. |
androidMinimumVersion |
Ciąg znaków | Minimalna wersja aplikacji obsługiwana w tym procesie. Jeśli określona jest wersja minimalna i zainstalowana jest starsza wersja aplikacji, użytkownik jest kierowany do Sklepu Play, aby ją uaktualnić. Aplikacja na Androida musi być zarejestrowana w konsoli. |
handleCodeInApp |
wartość logiczna | Określa, czy link do działania w e-mailu zostanie najpierw otwarty w aplikacji mobilnej, czy jako link internetowy. Wartość domyślna to false (fałsz). Jeśli zasada ma wartość Prawda, link z kodem działania jest wysyłany jako link uniwersalny lub link aplikacji na Androida i jest otwierany przez aplikację, jeśli jest zainstalowana. W przeciwnym razie kod zostanie najpierw wysłany do widżetu internetowego, a potem Dalej następuje przekierowanie do aplikacji, jeśli jest zainstalowana. |
dynamicLinkDomain |
Ciąg znaków | Konfiguruje domenę (lub subdomenę) linku dynamicznego, która ma być używana w bieżącym połączeniu, jeśli ma ono być otwierane za pomocą Linków dynamicznych Firebase. W każdym projekcie można skonfigurować wiele domen linków dynamicznych, dlatego to pole umożliwia wybranie jednej z nich. Jeśli nie zostanie podana żadna nazwa, domyślnie zostanie użyta pierwsza domena. |
Poniższy przykład ilustruje, jak wysłać e-mailowy link weryfikacyjny, który najpierw otworzy się w aplikacji mobilnej jako link dynamiczny Firebase, korzystając z niestandardowej domeny linku dynamicznego example.page.link
(aplikacja na iOS com.example.ios
lub aplikacja na Androida com.example.android
, w której aplikacja zostanie zainstalowana, jeśli nie jest jeszcze zainstalowana, a minimalna wersja to 12
). Precyzyjny link będzie zawierał ładunek adresu URL typu „Dalej” https://www.example.com/?email=user@example.com
.
final user = FirebaseAuth.instance.currentUser;
final actionCodeSettings = ActionCodeSettings(
url: "http://www.example.com/verify?email=${user?.email}",
iOSBundleId: "com.example.ios",
androidPackageName: "com.example.android",
);
await user?.sendEmailVerification(actionCodeSettings);
Konfigurowanie Linków dynamicznych Firebase
Uwierzytelnianie Firebase używa Linków dynamicznych Firebase do wysyłania linku, który ma 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ę Linki dynamiczne.
Jeśli Warunki korzystania z Linków dynamicznych nie zostały jeszcze zaakceptowane i masz utworzoną domenę Linków dynamicznych, zrób to teraz.
Jeśli masz już utworzoną domenę Linki dynamiczne, zanotuj ją. Domena Linków dynamicznych zwykle wygląda tak jak w tym przykładzie:
example.page.link
Będzie ona potrzebna podczas konfigurowania aplikacji na Apple lub Androida w taki sposób, aby przechwytywała link przychodzący.
Konfigurowanie aplikacji na Androida:
- Jeśli zamierzasz obsługiwać te linki w aplikacji na Androida, musisz określić nazwę pakietu na Androida w ustawieniach projektu w konsoli Firebase. Dodatkowo musisz podać SHA-1 i SHA-256 certyfikatu aplikacji.
- Musisz też skonfigurować filtr intencji dla precyzyjnego linku w pliku AndroidManifest.xml.
- Więcej informacji na ten temat znajdziesz w instrukcjach dotyczących odbierania linków dynamicznych w Androidzie.
Konfigurowanie aplikacji Apple:
- Jeśli planujesz obsługę tych linków z poziomu aplikacji, należy określić identyfikator pakietu w ustawieniach projektu w Konsoli Firebase. Musisz też podać identyfikator App Store i identyfikator zespołu Apple Developer Team.
- Konieczne będzie też skonfigurowanie domeny linku uniwersalnego FDL jako powiązanej domeny w funkcjach aplikacji.
- Jeśli planujesz dystrybuować swoją aplikację na iOS w wersji 8 i starszych, musisz ustawić identyfikator pakietu jako schemat niestandardowy dla przychodzących adresów URL.
- Więcej informacji na ten temat znajdziesz w instrukcjach dotyczących linków dynamicznych platform Apple.
Obsługa działań dotyczących poczty e-mail w aplikacji internetowej
Możesz określić, czy chcesz, aby link kodu działania był najpierw obsługiwany z aplikacji internetowej, a następnie po pomyślnym przekierowaniu na inną stronę internetową lub do aplikacji mobilnej (pod warunkiem, że aplikacja mobilna jest dostępna).
Aby to zrobić, ustaw wartość handleCodeInApp
na false
w obiekcie ActionCodeSettings
. Chociaż identyfikator pakietu lub nazwa pakietu na Androida nie są wymagane, po wypełnieniu kodu działania e-maila użytkownik będzie mógł przekierowywać użytkownika z powrotem do określonej aplikacji.
Użyty tutaj URL strony internetowej jest skonfigurowany w sekcji szablonów działań e-mail. Domyślna jest udostępniona dla wszystkich projektów. Więcej informacji o dostosowywaniu modułu obsługi działań dotyczących poczty e-mail znajdziesz w artykule na temat dostosowywania modułów obsługi poczty e-mail.
W tym przypadku link w parametrze zapytania continueURL
będzie linkiem FDL, którego ładunkiem jest URL
określony w obiekcie ActionCodeSettings
. Możesz przechwytywać i obsługiwać linki przychodzące z aplikacji bez żadnych dodatkowych zależności, ale zalecamy przeanalizowanie precyzyjnego linku za pomocą biblioteki klienta FDL.
W przypadku działań związanych z pocztą e-mail, takich jak potwierdzanie 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 zaczęła obowiązywać, czyli weryfikowany adres e-mail.
Obsługa działań poczty e-mail w aplikacji mobilnej
Możesz określić, czy link z kodem działania ma być najpierw obsługiwany w aplikacji mobilnej, o ile jest ona zainstalowana. W przypadku aplikacji na Androida za pomocą interfejsu androidInstallApp
możesz też określić, że aplikacja ma zostać zainstalowana, jeśli urządzenie obsługuje tę funkcję i nie jest jeszcze zainstalowana.
Jeśli link zostanie kliknięty na urządzeniu, które nie obsługuje aplikacji mobilnej, zostanie otwarty na stronie internetowej.
Aby to zrobić, ustaw wartość handleCodeInApp
na true
w obiekcie ActionCodeSettings
. Trzeba też podać nazwę pakietu na Androida lub identyfikator pakietu aplikacji mobilnej.Gdy nie ma dostępnej aplikacji mobilnej, używany tu zastępczy adres URL to adres skonfigurowany w sekcji szablonów działań e-mail. Domyślna jest obsługiwana dla wszystkich projektów. Więcej informacji o dostosowywaniu modułu obsługi działań dotyczących poczty e-mail znajdziesz w artykule na temat dostosowywania modułów obsługi poczty e-mail.
W tym przypadku link do aplikacji mobilnej wysłany do użytkownika będzie linkiem FDL, którego ładunek to adres URL kodu działania skonfigurowany w konsoli z parametrami zapytania oobCode
, mode
, apiKey
i continueUrl
. Jest to pierwotny URL
określony w obiekcie ActionCodeSettings
. Możesz przechwytywać i obsługiwać linki przychodzące z aplikacji bez żadnych dodatkowych zależności, ale zalecamy przeanalizowanie precyzyjnego linku za pomocą biblioteki klienta FDL. Kod działania można zastosować bezpośrednio z aplikacji mobilnej w podobny sposób jak w przypadku procesu internetowego opisanego w sekcji Dostosowywanie modułów obsługi poczty e-mail.
W przypadku działań związanych z pocztą e-mail, takich jak potwierdzanie 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 zaczęła obowiązywać, czyli weryfikowany adres e-mail.