Status in E-Mail-Aktionen übergeben

Sie können den Status über eine Fortsetzungs-URL übergeben, wenn Sie E-Mail-Aktionen zum Zurücksetzen des Kennworts senden oder die E-Mail eines Benutzers überprüfen. Dies bietet dem Benutzer die Möglichkeit, nach Abschluss der Aktion zur App zurückzukehren. Darüber hinaus können Sie angeben, ob der E-Mail-Aktionslink bei der Installation direkt von einer mobilen Anwendung verarbeitet werden soll, anstatt von einer Webseite.

Dies kann in den folgenden allgemeinen Szenarien äußerst nützlich sein:

  • Ein derzeit nicht angemeldeter Benutzer versucht möglicherweise, auf Inhalte zuzugreifen, für die eine Anmeldung des Benutzers erforderlich ist. Der Benutzer hat jedoch möglicherweise sein Kennwort vergessen und löst daher den Fluss zum Zurücksetzen des Kennworts aus. Am Ende des Flows erwartet der Benutzer, zu dem Abschnitt der App zurückzukehren, auf den er zuzugreifen versuchte.

  • Eine Anwendung darf nur Zugriff auf verifizierte Konten bieten. Zum Beispiel kann ein Newsletter verlangen, dass der Benutzer seine E-Mail verifiziert, bevor er sich abonniert. Der Benutzer würde den E-Mail-Verifizierungsablauf durchlaufen und erwarten, zur App zurückzukehren, um sein Abonnement abzuschließen.

  • In anderen Fällen hat der Benutzer den Flow möglicherweise von seinem Mobilgerät aus gestartet und erwartet, dass er nach der Überprüfung zu seiner mobilen App anstelle des Browsers zurückkehrt.

Die Möglichkeit, den Status über eine Fortsetzungs-URL zu übergeben, ist eine leistungsstarke Funktion, die Firebase Auth bietet und die die Benutzererfahrung erheblich verbessern kann.

Status/Fortsetzen-URL in E-Mail-Aktionen übergeben

Um eine URL weiterhin sicher zu passieren, müssen die Domäne für die URL in die weiße Liste gesetzt werden Firebase Konsole . Dies wird im Abschnitt Authentifizierung erfolgt durch das Hinzufügen dieser Domäne der Liste der autorisierten Domains unterhalb der Anmelde-Verfahren Registerkarte , wenn es nicht bereits vorhanden ist.

Eine ActionCodeSettings Instanz muss zur Verfügung gestellt werden , wenn das Zurücksetzen des Kennworts E - Mail oder ein Bestätigungs - E - Mail. Es kann mit der zugehörigen erstellt wird ActionCodeSettings.Builder Klasse , die enthält folgende Methoden:

Methode Beschreibung
setUrl(String url)

Setzt den Link (State/Continue URL), der in verschiedenen Kontexten unterschiedliche Bedeutungen hat:

  • Wenn der Link in dem Web - Aktion Widgets gehandhabt wird, ist dies der Deep - Link in dem continueUrl Abfrageparameter.
  • Wenn die Verbindung direkt in der App behandelt wird, ist dies die continueUrl Abfrage - Parameter in der tiefen Verbindung des Dynamic Link.
setIOSBundleId(String iOSBundleId) Legt die iOS-Bundle-ID fest. Dadurch wird versucht, den Link in einer iOS-App zu öffnen, falls diese installiert ist. Die iOS-App muss in der Konsole registriert werden.
setAndroidPackageName(String androidPackageName, boolean installIfNotAvailable, String minimumVersion) Legt den Android-Paketnamen fest. Dadurch wird versucht, den Link in einer Android-App zu öffnen, wenn diese installiert ist. Wenn installIfNotAvailable gesetzt ist true , gibt es , ob das Android - App zu installieren , wenn das Gerät unterstützt es und die App noch nicht installiert ist . Wenn minimumVersion angegeben ist und eine ältere Version der App installiert ist, wird der Benutzer zum Play Store weitergeleitet, um die App zu aktualisieren. Die Android-App muss in der Konsole registriert werden.
setHandleCodeInApp(boolean status) Ob der E-Mail-Aktionslink zuerst in einer mobilen App oder einem Weblink geöffnet wird. Der Standardwert ist falsch. Wenn auf "true" gesetzt, wird der Aktionscode-Link als universeller Link oder Android-App-Link gesendet und von der App geöffnet, falls installiert. Im falschen Fall wird der Code zuerst an das Web-Widget gesendet und dann beim Fortfahren zur App weitergeleitet, falls sie installiert ist.
setDynamicLinkDomain(String dynamicLinkDomain) Legt die Dynamic Link-Domain (oder Subdomain) fest, die für den aktuellen Link verwendet werden soll, wenn er mit Firebase Dynamic Links geöffnet werden soll. Da pro Projekt mehrere dynamische Linkdomänen konfiguriert werden können, bietet dieses Feld die Möglichkeit, eine explizit auszuwählen. Wenn keine angegeben ist, wird standardmäßig die erste Domäne verwendet.

Das folgende Beispiel zeigt , wie ein E - Mail Bestätigungslink zu senden , die in einer mobilen App zunächst als Firebase Dynamic Link (iOS - App öffnen com.example.ios oder Android App com.example.android ). Die Deep - Link enthält die weiterhin URL Nutzlast https://www.example.com/?email=user@example.com .

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

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

Firebase Auth verwendet Firebase dynamische Links , wenn Sie einen Link zu senden , die in einer mobilen Anwendung geöffnet werden soll. Um diese Funktion nutzen zu können, müssen Dynamic Links in der Firebase Console konfiguriert werden.

  1. Dynamische Firebase-Links aktivieren:

    1. In der Firebase Konsole öffnet Abschnitt des dynamischen Links.
    2. Wenn Sie die Bedingungen für Dynamic Links noch nicht akzeptiert und eine Dynamic Links-Domäne erstellt haben, tun Sie dies jetzt.

      Wenn Sie bereits eine Dynamic Links-Domäne erstellt haben, notieren Sie diese. Eine Dynamic Links-Domäne sieht normalerweise wie im folgenden Beispiel aus:

      example.page.link

      Sie benötigen diesen Wert, wenn Sie Ihre iOS- oder Android-App konfigurieren, um den eingehenden Link abzufangen.

  2. Android-Anwendungen konfigurieren:

    1. Wenn Sie diese Links von Ihrer Android-Anwendung aus verarbeiten möchten, muss der Android-Paketname in den Projekteinstellungen der Firebase Console angegeben werden. Außerdem müssen SHA-1 und SHA-256 des Antragszertifikats vorgelegt werden.
    2. Sie müssen auch den Intent-Filter für den Deep-Link in Ihrer AndroidManifest.xml-Datei konfigurieren.
    3. Weitere Informationen hierzu finden Sie unter Anweisungen Android dynamische Links empfangen .
  3. iOS-Anwendungen konfigurieren:

    1. Wenn Sie diese Links von Ihrer iOS-Anwendung aus verarbeiten möchten, muss die iOS-Bundle-ID in den Projekteinstellungen der Firebase Console angegeben werden. Außerdem müssen die App Store ID und die Apple Developer Team ID angegeben werden.
    2. Außerdem müssen Sie die FDL-Universal-Link-Domain als Associated Domain in Ihren Anwendungsfunktionen konfigurieren.
    3. Wenn Sie Ihre Anwendung an iOS-Versionen 8 und darunter verteilen möchten, müssen Sie Ihre iOS-Bundle-ID als benutzerdefiniertes Schema für eingehende URLs festlegen.
    4. Denn auf diese mehr finden Sie in iOS dynamische Links Anweisungen empfangen .

E-Mail-Aktionen in einer Webanwendung verarbeiten

Sie können angeben, ob Sie den Aktionscode-Link von einer Webanwendung zuerst verarbeiten und nach erfolgreichem Abschluss auf eine andere Webseite oder mobile Anwendung umleiten möchten, sofern die mobile Anwendung verfügbar ist. Dies wird durch den Aufruf gemacht setHandleCodeInApp(false) im ActionCodeSettings.Builder Objekt. Eine iOS-Bundle-ID oder ein Android-Paketname sind zwar nicht erforderlich, aber deren Angabe ermöglicht es dem Benutzer, nach Abschluss des E-Mail-Aktionscodes zur angegebenen App zurückzukehren.

Die hier verwendete Web-URL ist diejenige, die im Abschnitt mit den Vorlagen für E-Mail-Aktionen konfiguriert wurde. Für alle Projekte wird ein Standard bereitgestellt. Siehe Anpassen von E - Mail - Handler mehr auf lernen , wie der E - Mail - Action - Handler anpassen.

In diesem Fall wird der Link in der continueUrl wird Abfrageparameter eine FDL - Verbindung , deren Nutzlast kann die URL in dem angegebenen ActionCodeSettings Objekt. Obwohl Sie den eingehenden Link von Ihrer App ohne zusätzliche Abhängigkeit abfangen und verarbeiten können, empfehlen wir die Verwendung der FDL-Clientbibliothek, um den Deep-Link für Sie zu analysieren.

Wenn E - Mail - Aktionen wie E - Mail - Überprüfung der Handhabung, der Aktionscode aus den oobCode zu Abfrageparametern Bedürfnisse aus dem Deep - Link analysiert wird und dann über angewandt applyActionCode für die Änderung wirksam wird, um zB E - Mail überprüft werden.

Umgang mit E-Mail-Aktionen in einer mobilen Anwendung

Sie können angeben, ob Sie den Aktionscode-Link zuerst in Ihrer mobilen Anwendung verarbeiten möchten, sofern diese installiert ist. Mit Android - Anwendungen, haben Sie auch die Möglichkeit , über die angeben installIfNotAvailable boolean , dass der App , wenn das Gerät unterstützt es installiert werden soll und es nicht bereits installiert ist. Wenn der Link von einem Gerät angeklickt wird, das die mobile Anwendung nicht unterstützt, wird er stattdessen von einer Webseite geöffnet. Dies wird durch den Aufruf gemacht setHandleCodeInApp(true) im ActionCodeSettings.Builder Objekt. Außerdem muss der Android-Paketname oder die iOS-Paket-ID der mobilen Anwendung angegeben werden.

Die hier verwendete Fallback-Web-URL, wenn keine mobile App verfügbar ist, ist diejenige, die im Abschnitt E-Mail-Aktionsvorlagen konfiguriert wurde. Für alle Projekte wird ein Standard bereitgestellt. Siehe Anpassen von E - Mail - Handler mehr auf lernen , wie der E - Mail - Action - Handler anpassen.

In diesem Fall versendet die mobile App - Link an den Benutzer mit der Abfrageparameter in der Konsole eine FDL Verbindung , deren Nutzlast ist der Aktionscode URL, konfiguriert sein oobCode , mode , apiKey und continueUrl . Letzteres wird das ursprüngliche sein URL in dem angegebenen ActionCodeSettings Objekt. Obwohl Sie den eingehenden Link von Ihrer App ohne zusätzliche Abhängigkeit abfangen und verarbeiten können, empfehlen wir die Verwendung der FDL-Clientbibliothek, um den Deep-Link für Sie zu analysieren. Der Aktionscode kann direkt von einer mobilen Anwendung angewandt werden , ähnlich, wie es aus dem Web Flow behandelt wird in dem beschriebenen Customizing - E - Mail - Handler Abschnitt.

Wenn E - Mail - Aktionen wie E - Mail - Überprüfung der Handhabung, der Aktionscode aus den oobCode zu Abfrageparametern Bedürfnisse aus dem Deep - Link analysiert wird und dann über angewandt applyActionCode für die Änderung wirksam wird, um zB E - Mail überprüft werden.