Übergabestatus in E-Mail-Aktionen

Sie können den Status über eine Weiter-URL übergeben, wenn Sie E-Mail-Aktionen zum Zurücksetzen des Passworts senden oder die E-Mail-Adresse 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 direkt von einer mobilen Anwendung aus verarbeitet werden soll, wenn diese anstelle einer Webseite installiert wird.

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

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

  • Eine Anwendung darf nur Zugriff auf verifizierte Konten bieten. Beispielsweise kann es bei einer Newsletter-App erforderlich sein, dass der Benutzer seine E-Mail-Adresse bestätigt, bevor er sich anmeldet. Der Benutzer durchläuft den E-Mail-Verifizierungsprozess und erwartet, zur App zurückgeleitet zu werden, um sein Abonnement abzuschließen.

  • Wenn ein Benutzer in einer Apple-App mit dem Zurücksetzen eines Passworts oder einer E-Mail-Verifizierung beginnt, geht er im Allgemeinen davon aus, dass der Vorgang innerhalb der App abgeschlossen wird. Die Möglichkeit, den Status über die Fortsetzungs-URL zu übergeben, macht dies möglich.

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

Übergabe der Status-/Fortsetzungs-URL in E-Mail-Aktionen

Um eine Fortsetzungs-URL sicher zu übergeben, muss die Domäne für die URL in der Firebase-Konsole auf die Whitelist gesetzt werden. Dies erfolgt im Abschnitt „Authentifizierung “, indem diese Domäne zur Liste der autorisierten Domänen auf der Registerkarte „Anmeldemethode“ hinzugefügt wird, sofern sie dort noch nicht vorhanden ist.

Beim Senden einer E-Mail zum Zurücksetzen des Passworts oder einer Bestätigungs-E-Mail muss eine FIRActionCodeSettings Instanz bereitgestellt werden. Diese Schnittstelle akzeptiert die folgenden Parameter:

Schnell

Parameter Typ Beschreibung
URL Zeichenfolge

Legt den Link (Status-/Weiter-URL) fest, der in verschiedenen Kontexten unterschiedliche Bedeutungen hat:

  • Wenn der Link in den Webaktions-Widgets verarbeitet wird, ist dies der Deep-Link im continueUrl Abfrageparameter.
  • Wenn der Link direkt in der App verarbeitet wird, ist dies der continueUrl Abfrageparameter im Deep Link des dynamischen Links.
iOSBundleID Zeichenfolge Legt die Bundle-ID fest. Dadurch wird versucht, den Link in einer Apple-App zu öffnen, sofern diese installiert ist. Die App muss in der Konsole registriert werden. Wenn keine Bundle-ID angegeben wird, wird der Wert dieses Feldes auf die Bundle-ID des Hauptpakets der App gesetzt.
androidPackageName Zeichenfolge Legt den Android-Paketnamen fest. Dadurch wird versucht, den Link in einer Android-App zu öffnen, sofern diese installiert ist.
androidInstallIfNotAvailable Bool Gibt an, ob die Android-App installiert werden soll, wenn das Gerät sie unterstützt und die App noch nicht installiert ist. Wenn dieses Feld ohne packageName bereitgestellt wird, wird ein Fehler ausgegeben, der erklärt, dass packageName in Verbindung mit diesem Feld angegeben werden muss.
androidMinimumVersion Zeichenfolge Die Mindestversion der App, die in diesem Flow unterstützt wird. 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.
handleCodeInApp Bool Ob der E-Mail-Aktionslink zuerst in einer mobilen App oder einem Weblink geöffnet wird. Der Standardwert ist falsch. Wenn dieser Wert auf „true“ gesetzt ist, wird der Aktionscode-Link als universeller Link oder Android-App-Link gesendet und von der App geöffnet, sofern diese installiert ist. Im falschen Fall wird der Code zuerst an das Web-Widget gesendet und dann beim Fortfahren zur App weitergeleitet, sofern diese installiert ist.
dynamicLinkDomain Zeichenfolge Legt die dynamische Linkdomäne (oder Subdomäne) fest, die für den aktuellen Link verwendet werden soll, wenn dieser 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, explizit eine davon auszuwählen. Wenn keine angegeben wird, wird standardmäßig die erste Domäne verwendet.

Ziel c

Parameter Typ Beschreibung
URL NSString

Legt den Link (Status-/Weiter-URL) fest, der in verschiedenen Kontexten unterschiedliche Bedeutungen hat:

  • Wenn der Link in den Webaktions-Widgets verarbeitet wird, ist dies der Deep-Link im continueUrl Abfrageparameter.
  • Wenn der Link direkt in der App verarbeitet wird, ist dies der continueUrl Abfrageparameter im Deep Link des dynamischen Links.
iOSBundleID NSString Legt die Bundle-ID fest. Dadurch wird versucht, den Link in einer Apple-App zu öffnen, sofern diese installiert ist. Die App muss in der Konsole registriert werden.
androidPackageName NSString Legt den Android-Paketnamen fest. Dadurch wird versucht, den Link in einer Android-App zu öffnen, sofern diese installiert ist.
androidInstallIfNotAvailable BOOL Gibt an, ob die Android-App installiert werden soll, wenn das Gerät dies unterstützt und die App noch nicht installiert ist. Wenn dieses Feld ohne packageName bereitgestellt wird, wird ein Fehler ausgegeben, der erklärt, dass packageName in Verbindung mit diesem Feld angegeben werden muss.
androidMinimumVersion NSString Die Mindestversion der App, die in diesem Flow unterstützt wird. 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.
handleCodeInApp BOOL Ob der E-Mail-Aktionslink zuerst in einer mobilen App oder einem Weblink geöffnet wird. Der Standardwert ist falsch. Wenn dieser Wert auf „true“ gesetzt ist, wird der Aktionscode-Link als universeller Link oder Android-App-Link gesendet und von der App geöffnet, sofern diese installiert ist. Im falschen Fall wird der Code zuerst an das Web-Widget gesendet und dann beim Fortfahren zur App weitergeleitet, sofern diese installiert ist.
dynamicLinkDomain NSString Legt die dynamische Linkdomäne (oder Subdomäne) fest, die für den aktuellen Link verwendet werden soll, wenn dieser 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, explizit eine davon auszuwählen. Wenn keine angegeben wird, wird standardmäßig die erste Domäne verwendet.

Das folgende Beispiel zeigt, wie ein E-Mail-Bestätigungslink gesendet wird, der zunächst in einer mobilen App als dynamischer Firebase-Link geöffnet wird, und zwar mithilfe der benutzerdefinierten dynamischen Linkdomäne example.page.link (iOS-App com.example.ios oder Android-App com.example.android , wo die App installiert wird, wenn sie noch nicht installiert ist und die Mindestversion 12 ist). Der Deep-Link enthält die Weiter-URL-Nutzlast https://www.example.com/?email=user@example.com .

Schnell


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

Ziel 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.
 }];

Firebase Auth verwendet Firebase Dynamic Links beim Senden eines Links, der in einer mobilen Anwendung geöffnet werden soll. Um diese Funktion nutzen zu können, müssen dynamische Links in der Firebase-Konsole konfiguriert werden.

  1. Aktivieren Sie dynamische Firebase-Links:

    1. Öffnen Sie in der Firebase-Konsole den Abschnitt „Dynamische Links“ .
    2. Wenn Sie die Dynamic Links-Bedingungen noch nicht akzeptiert und keine Dynamic Links-Domäne erstellt haben, tun Sie dies jetzt.

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

      example.page.link

      Sie benötigen diesen Wert, wenn Sie Ihre Apple- oder Android-App so konfigurieren, dass sie den eingehenden Link abfängt.

  2. Konfigurieren von Android-Anwendungen:

    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. Darüber hinaus müssen SHA-1 und SHA-256 des Anwendungszertifikats angegeben werden.
    2. Sie müssen außerdem den Absichtsfilter für den Deep Link in Ihrer AndroidManifest.xml-Datei konfigurieren.
    3. Weitere Informationen hierzu finden Sie in der Anleitung zum Empfangen dynamischer Android-Links .
  3. Konfigurieren von Apple-Anwendungen:

    1. Wenn Sie diese Links von Ihrer Anwendung aus verarbeiten möchten, muss die Bundle-ID in den Projekteinstellungen der Firebase Console angegeben werden. Darüber hinaus müssen auch die App Store ID und die Apple Developer Team ID angegeben werden.
    2. Sie müssen außerdem die FDL-Universal-Link-Domäne als zugeordnete Domäne in Ihren Anwendungsfunktionen konfigurieren.
    3. Wenn Sie planen, Ihre Anwendung an iOS-Versionen 8 und niedriger zu verteilen, müssen Sie Ihre Bundle-ID als benutzerdefiniertes Schema für eingehende URLs festlegen.
    4. Weitere Informationen hierzu finden Sie in den Anweisungen zum Empfangen dynamischer Links auf Apple-Plattformen .

Verarbeiten von E-Mail-Aktionen in einer Webanwendung

Sie können angeben, ob Sie zuerst den Aktionscode-Link einer Webanwendung verarbeiten und dann nach erfolgreichem Abschluss zu einer anderen Webseite oder mobilen Anwendung weiterleiten möchten, sofern die mobile Anwendung verfügbar ist. Dies erfolgt durch Setzen handleCodeInApp auf false im Objekt FIRActionCodeSettings (Obj-C) oder ActionCodeSettings (Swift). Eine Bundle-ID oder ein Android-Paketname sind zwar nicht erforderlich, ihre Bereitstellung ermöglicht es dem Benutzer jedoch, nach Abschluss des E-Mail-Aktionscodes zur angegebenen App zurückzukehren.

Die hier verwendete Web-URL ist diejenige, die im Abschnitt „E-Mail-Aktionsvorlagen“ konfiguriert wurde. Für alle Projekte wird ein Standard bereitgestellt. Weitere Informationen zum Anpassen des E-Mail-Aktionshandlers finden Sie unter Anpassen von E-Mail-Handlern.

In diesem Fall ist der Link innerhalb des continueURL Abfrageparameters ein FDL-Link, dessen Nutzlast die im ActionCodeSettings Objekt angegebene URL ist. Während Sie den von Ihrer App eingehenden Link 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.

Bei der Bearbeitung von E-Mail-Aktionen wie der E-Mail-Verifizierung muss der Aktionscode aus dem Abfrageparameter oobCode aus dem Deep-Link geparst und dann über applyActionCode angewendet werden, damit die Änderung wirksam wird, d. h. die E-Mail wird überprüft.

E-Mail-Aktionen in einer mobilen Anwendung verwalten

Sie können angeben, ob Sie den Aktionscode-Link zuerst in Ihrer mobilen Anwendung verarbeiten möchten, sofern diese installiert ist. Bei Android-Anwendungen haben Sie außerdem die Möglichkeit, über androidInstallIfNotAvailable festzulegen, dass die App installiert werden soll, wenn das Gerät dies unterstützt und sie nicht bereits installiert ist. Wenn der Link von einem Gerät aus angeklickt wird, das die mobile Anwendung nicht unterstützt, wird er stattdessen von einer Webseite aus geöffnet. Dies erfolgt durch Setzen handleCodeInApp auf true im Objekt FIRActionCodeSettings (Obj-C) oder ActionCodeSettings (Swift). Außerdem muss der Android-Paketname oder die Bundle-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. Weitere Informationen zum Anpassen des E-Mail-Aktionshandlers finden Sie unter Anpassen von E-Mail-Handlern.

In diesem Fall handelt es sich bei dem an den Benutzer gesendeten Link zur mobilen App um einen FDL-Link, dessen Nutzlast die in der Konsole konfigurierte Aktionscode-URL mit den Abfrageparametern oobCode , mode , apiKey und continueUrl ist. Letzteres ist die ursprüngliche URL , die im Objekt FIRActionCodeSettings (Obj-C) oder ActionCodeSettings (Swift) angegeben ist. Während Sie den von Ihrer App eingehenden Link 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 aus einer mobilen Anwendung angewendet werden, ähnlich wie er im Webflow gehandhabt wird, der im Abschnitt „Anpassen von E-Mail-Handlern“ beschrieben wird.

Bei der Bearbeitung von E-Mail-Aktionen wie der E-Mail-Verifizierung muss der Aktionscode aus dem Abfrageparameter oobCode aus dem Deep-Link geparst und dann über applyActionCode angewendet werden, damit die Änderung wirksam wird, d. h. die E-Mail wird überprüft.