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 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.

  • 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.
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.");
                }
            }
        });

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 na iOS:

    1. 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.
    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 na iOS jako schemat niestandardowy dla przychodzących Adresy URL.
    4. 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.