Status in E-Mail-Aktionen übergeben

Sie können den Status über eine Weiter-URL übergeben, wenn Sie E-Mail-Aktionen für Passwörter senden setzt die E-Mail-Adresse eines Nutzers zurück oder verifiziert sie. So kann der Nutzer nach Abschluss der Aktion zur App zurückkehren. Außerdem können Sie angeben, ob der E-Mail-Aktionslink direkt über eine mobile Anwendung verarbeitet werden soll, wenn diese installiert ist, anstatt über eine Webseite.

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

  • Ein Nutzer, der derzeit nicht angemeldet ist, versucht möglicherweise, auf Inhalte zuzugreifen, die setzt voraus, dass der Nutzer angemeldet ist. Die Nutzenden haben jedoch möglicherweise und lösen den Vorgang zum Zurücksetzen des Passworts aus. Am Ende des Ablaufs erwartet der Nutzer, dass er zum Bereich der App zurückkehrt, auf den er zugreifen wollte.

  • Eine Anwendung darf nur Zugriff auf bestätigte Konten bieten. Für Beispiel: In einer Newsletter-App müssen Nutzer ihre E-Mail-Adresse bestätigen, Abos. Der Nutzer durchläuft die E-Mail-Bestätigung und erwartet, zur App zurückgegeben, um das Abo abzuschließen.

  • Grundsätzlich gilt: Wenn ein Nutzer das Passwort oder die E-Mail-Bestätigung eine Apple-App, die den Ablauf innerhalb der App abschließen soll die Möglichkeit, ist dies möglich.

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

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

Damit eine Weiter-URL sicher übergeben werden kann, muss die Domain für die URL in der Firebase Console auf die Zulassungsliste gesetzt werden. Fügen Sie dazu im Abschnitt Authentication (Authentifizierung) diese Domain zum Liste Autorisierter Domains auf dem Tab Anmeldemethode, falls diese nicht bereits vorhanden ist.

Beim Senden muss eine ActionCodeSettings-Instanz angegeben werden eine E-Mail zum Zurücksetzen des Passworts oder eine Bestätigungs-E-Mail. Diese Schnittstelle verwendet die folgenden Parameter:

Parameter Typ Beschreibung
url String

Legt den Link (Status-/Fortsetzungs-URL) fest, der unterschiedliche Bedeutungen hat unterschiedlichen Kontexten:

  • Wenn der Link in den Web-Aktions-Widgets verarbeitet wird, ist dies der Deeplink im Abfrageparameter continueUrl.
  • Wenn der Link direkt in der App verarbeitet wird, ist dies der continueUrl-Abfrageparameter im Deeplink des dynamischen Links.
iOSBundleId String Legt die Set-ID fest. In folgenden Fällen wird versucht, den Link in einer Apple-App zu öffnen: wenn es installiert ist. Die App muss in der Konsole registriert sein. Falls nein Die Bundle-ID ist angegeben. Der Wert dieses Felds wird auf die Bundle-ID von das Haupt-Bundle der App.
androidPackageName String Legt den Android-Paketnamen fest. Dadurch wird versucht, den Link in einem Android-App, falls sie installiert ist.
androidInstallApp bool Gibt an, ob die Android-App installiert werden soll, wenn das Gerät dies unterstützt und die App ist noch nicht installiert. Wird dieses Feld ohne ein packageName enthält, wird ein Fehler ausgegeben, der erklärt, dass der PackageName die in Verbindung mit diesem Feld bereitgestellt werden.
androidMinimumVersion String Die Mindestversion der App, die in diesem Ablauf unterstützt wird. Wenn MinimumVersion angegeben ist und eine ältere Version der App installiert wird. Der Nutzer wird zum Play Store weitergeleitet, um die App zu aktualisieren. Android-App muss in der Console registriert sein.
handleCodeInApp bool Ob der E-Mail-Aktionslink in einer mobilen App oder im Web geöffnet wird . Der Standardwert ist "false". Wenn die Richtlinie auf „true“ gesetzt ist, wird als universellen Link oder Android-App-Link gesendet und wird geöffnet von der App, falls installiert. Im falschen Fall wird der Code an die Web-Widget zuerst und dann weiter zur App, wenn installiert haben.
dynamicLinkDomain String Hiermit wird die Dynamic Link-Domain (oder ‑Subdomain) festgelegt, die für den aktuellen Link verwendet werden soll, wenn er mit Firebase Dynamic Links geöffnet werden soll. Als mehrere dynamische Creatives Linkdomains pro Projekt konfiguriert werden, enthält dieses Feld eine Option explizit auszuwählen. Wenn keine angegeben ist, wird die erste Domain wird standardmäßig verwendet.

Das folgende Beispiel zeigt, wie ein E-Mail-Bestätigungslink gesendet wird, wird in einer mobilen App zuerst als dynamischer Firebase-Link mit der benutzerdefinierten Domain des dynamischen Links example.page.link (iOS-App com.example.ios oder Android-App com.example.android, wobei die App wird installiert, falls dies noch nicht geschehen ist und die Mindestversion 12 ist. Die Deep-Link enthält die Nutzlast der Fortsetzungs-URL 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);

Firebase Auth verwendet Firebase Dynamic Links beim Senden einer der in einer mobilen App geöffnet werden soll. Um diese müssen Dynamic Links in der Firebase Console konfiguriert werden.

  1. Aktivieren Sie Firebase Dynamic Links:

    1. Öffnen Sie in der Firebase Console den Abschnitt Dynamic Links.

    2. Wenn Sie die Dynamic Links-Nutzungsbedingungen noch nicht akzeptiert und noch keine Dynamic Links erstellt haben holen Sie dies jetzt nach.

    3. Notieren Sie sich, wenn Sie bereits eine Dynamic Links-Domain erstellt haben. Dynamische Links Domain sieht normalerweise so aus:

      example.page.link

    4. Sie benötigen diesen Wert, wenn Sie Ihre Apple- oder Android-App so konfigurieren, dass der eingehende Link abgefangen wird.

  2. Android-Anwendungen konfigurieren:

    1. Wenn du vorhast, diese Links von deiner Android-App aus zu handhaben, Der Android-Paketname muss in der Firebase Console angegeben werden Projekteinstellungen. Außerdem werden SHA-1 und SHA-256 der Anwendung muss angegeben werden.
    2. Außerdem müssen Sie den Intent-Filter für den Deeplink in der Datei „AndroidManifest.xml“ konfigurieren.
    3. Weitere Informationen finden Sie unter Anleitung zum Empfangen von Android-Dynamic Links.
  3. Apple-Anwendungen konfigurieren:

    1. Wenn Sie vorhaben, diese Links von Ihrer Anwendung aus zu verarbeiten, Die Bundle-ID muss in der Firebase Console angegeben werden Projekteinstellungen. Die App Store-ID und der Apple Developer Die Team-ID muss ebenfalls angegeben werden.
    2. Außerdem müssen Sie die universelle Link-Domain (FDL) als Verknüpfte Domain in den App-Funktionen.
    3. Wenn Sie Ihre App für iOS-Version 8 oder niedriger bereitstellen möchten, müssen Sie Ihre Paket-ID als benutzerdefiniertes Schema für eingehende URLs.
    4. Weitere Informationen hierzu finden Sie unter Anleitung für Dynamic Links der Apple-Plattformen

E-Mail-Aktionen in einer Webanwendung verarbeiten

Sie können angeben, ob der Aktionscode-Link von einem Web- und dann auf eine andere Webseite oder mobile App weiterleiten. nach erfolgreichem Abschluss, vorausgesetzt, die mobile App ist verfügbar. Dazu wird im ActionCodeSettings-Objekt handleCodeInApp auf false gesetzt. Während eine Bundle-ID oder Android-Paketnamen nicht erforderlich sind, können Nutzer , um nach Eingabe des E-Mail-Aktionscodes zur angegebenen App zurückzuleiten.

Die hier verwendete Web-URL ist die im Abschnitt „Vorlagen für E-Mail-Aktionen“ konfigurierte. Für alle Projekte wird eine Standard-Konfiguration bereitgestellt. Weitere Informationen finden Sie unter Anpassen von E-Mail-Handlern, um mehr über E-Mail-Aktions-Handler anpassen.

In diesem Fall lautet der Link im Suchparameter continueURL einen FDL-Link, dessen Nutzlast dem URL entspricht, das in der ActionCodeSettings angegeben ist -Objekt enthält. Du kannst den von deiner App eingehenden Link abfangen und verarbeiten. ohne zusätzliche Abhängigkeit, empfehlen wir die Verwendung der FDL-Clientbibliothek, den Deeplink für Sie zu parsen.

Bei E-Mail-Aktionen wie der E-Mail-Bestätigung muss der Aktionscode aus dem Der Abfrageparameter „oobCode“ muss aus dem Deeplink geparst und dann angewendet werden über applyActionCode, damit die Änderung wirksam wird, d.h. per E-Mail, die bestätigt werden soll.

E-Mail-Aktionen in einer mobilen App verarbeiten

Sie können angeben, ob Sie den Aktionscode-Link in Ihrem mobile App zuerst, sofern sie installiert ist. Bei Android-Apps können Sie auch über die androidInstallApp festlegen, Die App soll installiert werden, wenn das Gerät dies unterstützt und dies noch nicht der Fall ist. installiert haben. Wenn der Link auf einem Gerät angeklickt wird, das die mobile wird sie stattdessen über eine Webseite geöffnet. Dazu wird im ActionCodeSettings-Objekt handleCodeInApp auf true gesetzt. Die Der Android-Paketname oder die Paket-ID der mobilen App muss ebenfalls Falls keine mobile App verfügbar ist, wird die hier verwendete Fallback-Web-URL verwendet. die im Abschnitt „E-Mail-Aktionsvorlagen“ konfiguriert ist. Eine Standardeinstellung ist die für alle Projekte bereitgestellt werden. Weitere Informationen finden Sie unter Anpassen von E-Mail-Handlern, um mehr über E-Mail-Aktions-Handler anpassen.

In diesem Fall ist der an den Nutzer gesendete Link zur mobilen App ein FDL-Link, payload ist die in der Konsole konfigurierte Aktionscode-URL mit der Abfrage Parameter oobCode, mode, apiKey und continueUrl. Letzteres wird die Original-URL angegeben in den ActionCodeSettings-Objekt. Sie können zwar von eurer App abgerufen werden, ohne dass eine weitere Abhängigkeit erforderlich ist, empfehlen wir, mithilfe der FDL-Clientbibliothek, um den Deeplink für Sie zu parsen. Der Aktionscode kann direkt aus einer mobilen App angewendet werden kann, ähnlich wie wie in den Anpassen von E-Mail-Handlern.

Bei E-Mail-Aktionen wie der E-Mail-Bestätigung muss der Aktionscode aus dem Der Abfrageparameter „oobCode“ muss aus dem Deeplink geparst und dann angewendet werden über applyActionCode, damit die Änderung wirksam wird, d.h. per E-Mail, die bestätigt werden soll.