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 aby wrócić do aplikacji po zakończeniu danego 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 newsletter 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 i dokończyć subskrypcję.
W innych przypadkach użytkownik mógł rozpocząć proces ze swojego urządzenia mobilnego. i oczekują, że po weryfikacji wrócą do aplikacji mobilnej, zamiast z przeglądarki.
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.
ActionCodeSettings podczas wysyłania wiadomości e-mail do zresetowania hasła lub e-maila weryfikacyjnego. Można go utworzyć przy użyciu powiązanego elementu ActionCodeSettings.Builder class , która zawiera następujące metody:
Metoda | Opis |
---|---|
setUrl(String url) |
Określa link (adres URL stanu/kontynuacji), który ma różne znaczenie w różnych kontekstach.
|
setIOSBundleId(String iOSBundleId) |
Ustawia identyfikator pakietu na iOS. Spowoduje to próbę otwarcia linku w aplikacji na iOS, jeśli jest zainstalowana. Aplikacja na iOS musi być zarejestrowana w konsoli. |
setAndroidPackageName(String androidPackageName, boolean installIfNotAvailable, String minimumVersion) |
Określa nazwę pakietu na Androida. Spowoduje to próbę otwarcia linku w
Android, jeśli jest zainstalowana. Jeśli parametr installIfNotAvailable ma wartość true , określa ona wartość
czy zainstalować aplikację na Androida, jeśli urządzenie ją obsługuje, oraz aplikację
nie jest jeszcze zainstalowany. Jeśli określono parametr minimumVersion,
jeśli zainstalowana jest starsza wersja aplikacji, użytkownik zostanie przekierowany na stronę
Sklep Play, aby uaktualnić aplikację. Aplikacja na Androida musi być zarejestrowana w
w konsoli administracyjnej. |
setHandleCodeInApp(boolean status) |
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. |
setDynamicLinkDomain(String dynamicLinkDomain) |
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
(Aplikacja na iOS: com.example.ios
lub com.example.android
na Androida).
precyzyjny link będzie zawierał ładunek adresu URL „continue”
https://www.example.com/?email=user@example.com
Kotlin+KTX
val auth = Firebase.auth val user = auth.currentUser!! val url = "http://www.example.com/verify?uid=" + user.uid val actionCodeSettings = ActionCodeSettings.newBuilder() .setUrl(url) .setIOSBundleId("com.example.ios") // The default for this is populated with the current android package name. .setAndroidPackageName("com.example.android", false, null) .build() user.sendEmailVerification(actionCodeSettings) .addOnCompleteListener { task -> if (task.isSuccessful) { Log.d(TAG, "Email sent.") } }
Java
FirebaseAuth auth = FirebaseAuth.getInstance(); FirebaseUser user = auth.getCurrentUser(); String url = "http://www.example.com/verify?uid=" + user.getUid(); ActionCodeSettings actionCodeSettings = ActionCodeSettings.newBuilder() .setUrl(url) .setIOSBundleId("com.example.ios") // The default for this is populated with the current android package name. .setAndroidPackageName("com.example.android", false, null) .build(); user.sendEmailVerification(actionCodeSettings) .addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { if (task.isSuccessful()) { Log.d(TAG, "Email 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 Linki dynamiczne należy skonfigurować 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 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.
Konfigurowanie aplikacji na Androida:
- 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.
- Musisz też skonfigurować filtr intencji dla precyzyjnego linku w w pliku AndroidManifest.xml.
- Więcej informacji: Instrukcje dotyczące Linków dynamicznych na Androidzie.
Konfigurowanie aplikacji na iOS:
- Jeśli planujesz obsługę tych linków w aplikacji na iOS, W konsoli Firebase należy określić identyfikator pakietu na iOS ustawieniach projektu. Dodatkowo identyfikator App Store i identyfikator Apple Trzeba też podać identyfikator zespołu.
- Musisz też skonfigurować domenę uniwersalnego linku FDL jako Powiązana domena w możliwościach aplikacji.
- Jeśli planujesz dystrybuować swoją aplikację na iOS w wersji 8 lub starszej, musisz ustawić identyfikator pakietu na iOS jako schemat niestandardowy dla przychodzących Adresy URL.
- Więcej informacji: Instrukcje dotyczące linków dynamicznych na iOS.
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ć, wywołaj setHandleCodeInApp(false)
w
ActionCodeSettings.Builder
obiektu. Identyfikator pakietu na iOS i nazwa pakietu na Androida nie są wymagane, ale jego 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ż za pomocą wartości logicznej installIfNotAvailable
określić, że aplikacja
należy zainstalować, jeśli urządzenie obsługuje tę funkcję i nie jest jeszcze zainstalowane.
Jeśli link został kliknięty na urządzeniu, które nie obsługuje telefonu komórkowego
aplikacji, jest otwierany na stronie internetowej.
Aby to zrobić, wywołaj setHandleCodeInApp(true)
w
ActionCodeSettings.Builder
obiektu. Należy też podać nazwę pakietu na Androida lub identyfikator pakietu aplikacji mobilnej na iOS.
Jeśli nie ma aplikacji mobilnej, używany tutaj zastępczy URL skonfigurowane w sekcji szablonów działań e-mail. Udostępniona jest domyślna wersja 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 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
pierwotna wartość URL
została określona w obiekcie ActionCodeSettings
. Choć możesz
przechwytywać i obsługiwać przychodzący link z aplikacji bez dodatkowego
zależność, zalecamy użycie biblioteki klienta FDL do analizy precyzyjnego linku
do Ciebie. Kod działania może zostać zastosowany bezpośrednio z aplikacji mobilnej podobnej do
do sposobu, w jaki jest on obsługiwany z poziomu przepływu sieci opisanego w dokumencie
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.