Sie können den Status über eine URL zur Weiterleitung übergeben, wenn Sie E-Mail-Aktionen zum Zurücksetzen von Passwörtern oder zum Bestätigen der E-Mail-Adresse eines Nutzers senden. So kann der Nutzer nach Abschluss der Aktion zur App zurückkehren. Außerdem können Sie festlegen, ob der Link für die E-Mail-Aktion direkt über eine mobile App verarbeitet werden soll, wenn diese installiert ist, und nicht über eine Webseite.
Das kann in den folgenden häufigen Szenarien sehr nützlich sein:
Ein Nutzer, der derzeit nicht angemeldet ist, versucht möglicherweise, auf Inhalte zuzugreifen, für die eine Anmeldung erforderlich ist. Er hat aber vielleicht sein Passwort vergessen und löst daher den Vorgang zum Zurücksetzen des Passworts aus. Am Ende des Vorgangs möchte der Nutzer zu dem Bereich der App zurückkehren, auf den er zugreifen wollte.
Eine Anwendung bietet möglicherweise nur Zugriff auf bestätigte Konten. Bei einer Newsletter-App muss der Nutzer beispielsweise seine E-Mail-Adresse bestätigen, bevor er sich anmelden kann. Der Nutzer durchläuft den Vorgang zur E-Mail-Bestätigung und erwartet, dass er zur App zurückkehrt, um die Anmeldung abzuschließen.
Wenn ein Nutzer einen Vorgang zum Zurücksetzen des Passworts oder zur E-Mail-Bestätigung in einer Apple-App startet, erwartet er im Allgemeinen, dass er den Vorgang in der App abschließen kann. Die Möglichkeit, den Status über eine URL zur Weiterleitung zu übergeben, macht das möglich.
Die Möglichkeit, den Status über eine URL zur Weiterleitung zu übergeben, ist eine leistungsstarke Funktion von Firebase Auth, die die Nutzerfreundlichkeit erheblich verbessern kann.
Status/URL zur Weiterleitung in E-Mail-Aktionen übergeben
Damit eine URL zur Weiterleitung 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 Bereich Authentifizierung auf dem Tab Anmeldemethode diese Domain der Liste der Autorisierten Domains hinzu, falls sie noch nicht vorhanden ist.
Beim Senden einer E-Mail zum Zurücksetzen des Passworts oder einer Bestätigungs-E-Mail muss eine ActionCodeSettings-Instanz angegeben werden. Diese Schnittstelle verwendet die folgenden Parameter:
| Parameter | Typ | Beschreibung | |||
|---|---|---|---|---|---|
url |
String | Legt den Link (Status/URL zur Weiterleitung) fest, der in verschiedenen Kontexten unterschiedliche Bedeutungen hat:
|
|||
iOSBundleId |
String | Legt die Bundle-ID fest. Der Link wird versucht, in einer Apple-App zu öffnen, wenn es installiert ist. Die App muss in der Console registriert sein. Wenn keine Bundle-ID angegeben ist, wird der Wert dieses Felds auf die Bundle-ID des Haupt-Bundles der App festgelegt. | |||
androidPackageName |
String | Legt den Android-Paketnamen fest. Der Link wird versucht, in einer Android-App zu öffnen, wenn diese installiert ist. | |||
androidInstallApp |
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 einen Paketnamen angegeben wird, wird ein Fehler ausgegeben, der besagt, dass der Paketname zusammen mit diesem Feld angegeben werden muss. | |||
androidMinimumVersion |
String | Die Mindestversion der App, die in diesem Vorgang unterstützt wird. Wenn eine Mindestversion angegeben ist und eine ältere Version der App installiert ist, wird der Nutzer zum Play Store weitergeleitet, um die App zu aktualisieren. Die Android-App muss in der Console registriert sein. | |||
handleCodeInApp |
bool | Gibt an, ob der Link für die E-Mail-Aktion zuerst in einer mobilen App oder in einem Web link geöffnet werden soll. Der Standardwert ist „false“. Wenn der Wert auf „true“ gesetzt ist, wird der Link für den Aktionscode als universeller Link oder Android-App-Link gesendet und von der App geöffnet falls sie installiert ist. Wenn der Wert „false“ ist, wird der Code zuerst an das Web-Widget gesendet und dann nach der Weiterleitung zur App weitergeleitet, falls sie installiert ist. | |||
dynamicLinkDomain |
String | (Veraltet, verwenden Sie `linkDomain`) 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 Dynamic Link-Domains konfiguriert werden können, können Sie mit diesem Feld die Möglichkeit nutzen, explizit eine auszuwählen. Wenn keine angegeben ist, wird standardmäßig die erste Domain verwendet. | linkDomain |
String | Die optionale benutzerdefinierte Firebase Hosting-Domain, die verwendet werden soll, wenn der Link über eine bestimmte mobile App geöffnet werden soll. Die Domain muss in Firebase Hosting konfiguriert sein und dem Projekt gehören. Dies darf keine Standard-Hosting-Domain (`web.app` oder `firebaseapp.com`) sein. Diese Einstellung ersetzt die veraltete Einstellung `dynamicLinkDomain`. |
Im folgenden Beispiel wird veranschaulicht, wie Sie einen Link zur E-Mail-Bestätigung senden, der zuerst in einer mobilen App als Firebase Dynamic Link mit der benutzerdefinierten Dynamic Link-Domain example.page.link geöffnet wird (iOS-App com.example.ios oder Android-App com.example.android, wobei die App installiert wird, wenn sie noch nicht installiert ist, und die Mindestversion 12 ist). Der Deeplink enthält die Nutzlast der URL zur Weiterleitung 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 Dynamic Links konfigurieren
Firebase Auth verwendet Firebase Dynamic Links, wenn ein Link gesendet wird, der in einer mobilen App geöffnet werden soll. Damit Sie diese Funktion nutzen können, müssen Dynamic Links in der Firebase Console konfiguriert werden.
Firebase Dynamic Links aktivieren:
Öffnen Sie in der Firebase Console den Bereich Dynamic Links.
Wenn Sie die Nutzungsbedingungen für Dynamic Links noch nicht akzeptiert und eine Dynamic Links-Domain erstellt haben, tun Sie dies jetzt.
Notieren Sie sich die Dynamic Links-Domain, falls Sie bereits eine erstellt haben. Eine Dynamic Links-Domain sieht in der Regel so aus:
example.page.link
Sie benötigen diesen Wert, wenn Sie Ihre Apple- oder Android-App so konfigurieren, dass der eingehende Link abgefangen wird.
Android-Anwendungen konfigurieren:
- Wenn Sie diese Links in Ihrer Android-Anwendung verarbeiten möchten, muss der Android-Paketname in den Projekteinstellungen der Firebase Console angegeben werden. Außerdem müssen der SHA-1- und der SHA-256-Fingerabdruck des Anwendungszertifikats angegeben werden.
- Sie müssen auch den Intent-Filter für den Deeplink in der Datei AndroidManifest.xml konfigurieren.
- Weitere Informationen finden Sie in der Anleitung zum Empfangen von Android Dynamic Links.
Apple-Anwendungen konfigurieren:
- Wenn Sie diese Links in Ihrer Anwendung verarbeiten möchten, muss die 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.
- Sie müssen auch die universelle FDL-Link-Domain als zugehörige Domain in den Anwendungsfunktionen konfigurieren.
- Wenn Sie Ihre Anwendung für iOS-Versionen 8 und niedriger bereitstellen möchten, müssen Sie Ihre Bundle-ID als benutzerdefiniertes Schema für eingehende URLs festlegen.
- Weitere Informationen finden Sie in der Anleitung zum Empfangen von Dynamic Links für Apple-Plattformen.
E-Mail-Aktionen in einer Webanwendung verarbeiten
Sie können festlegen, ob der Link für den Aktionscode zuerst in einer Webanwendung verarbeitet und nach erfolgreichem Abschluss zu einer anderen Webseite oder mobilen Anwendung weitergeleitet werden soll, sofern die mobile Anwendung verfügbar ist.
Setzen Sie dazu handleCodeInApp im ActionCodeSettings-Objekt auf false. Eine Bundle-ID oder ein Android-Paketname sind zwar nicht erforderlich, aber wenn Sie sie angeben, kann der Nutzer nach Abschluss des E-Mail-Aktionscodes zur angegebenen App zurückgeleitet werden.
Die hier verwendete Web-URL ist die, die im Abschnitt E-Mail-Aktionsvorlagen konfiguriert wurde. Für alle Projekte wird eine Standard-URL bereitgestellt. Weitere Informationen zum Anpassen des E-Mail-Aktions-Handlers finden Sie unter E-Mail-Handler anpassen.
In diesem Fall ist der Link im continueURL Abfrageparameter ein FDL-Link, dessen Nutzlast die in ActionCodeSettings Objekt angegebene URL ist. Sie können den eingehenden Link zwar ohne zusätzliche Abhängigkeiten abfangen und verarbeiten, wir empfehlen jedoch, die FDL-Clientbibliothek zu verwenden, um den Deeplink zu parsen.
Bei der Verarbeitung von E-Mail-Aktionen wie der E-Mail-Bestätigung muss der Aktionscode aus dem Abfrageparameter oobCode aus dem Deeplink geparst und dann über applyActionCode angewendet werden, damit die Änderung wirksam wird, d.h. die E-Mail-Adresse bestätigt wird.
E-Mail-Aktionen in einer mobilen Anwendung verarbeiten
Sie können festlegen, ob der Link für den Aktionscode zuerst in Ihrer mobilen Anwendung verarbeitet werden soll, sofern diese installiert ist. Bei Android-Anwendungen können Sie über androidInstallApp auch angeben, dass die App installiert werden soll, wenn das Gerät sie unterstützt und sie noch nicht installiert ist.
Wenn auf den Link über ein Gerät geklickt wird, das die mobile Anwendung nicht unterstützt, wird er stattdessen auf einer Webseite geöffnet.
Setzen Sie dazu handleCodeInApp im ActionCodeSettings-Objekt auf true. 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 die, die im Abschnitt E-Mail-Aktionsvorlagen konfiguriert wurde. Für alle Projekte wird eine Standard-URL bereitgestellt. Weitere Informationen zum Anpassen des E-Mail-Aktions-Handlers finden Sie unter
E-Mail-Handler anpassen.
In diesem Fall ist der an den Nutzer gesendete Link für die mobile App ein FDL-Link, dessen Nutzlast die in der Console konfigurierte URL für den Aktionscode mit den Abfrageparametern oobCode, mode, apiKey und continueUrl ist. Letztere ist die ursprüngliche URL, die im ActionCodeSettings-Objekt angegeben wurde. Sie können den eingehenden Link zwar ohne zusätzliche Abhängigkeiten abfangen und verarbeiten, wir empfehlen jedoch, die FDL-Clientbibliothek zu verwenden, um den Deeplink zu parsen. Der Aktionscode kann
direkt über eine mobile Anwendung angewendet werden, ähnlich wie im Webvorgang, der in dem
Abschnitt E-Mail-Handler anpassen beschrieben wird.
Bei der Verarbeitung von E-Mail-Aktionen wie der E-Mail-Bestätigung muss der Aktionscode aus dem Abfrageparameter oobCode aus dem Deeplink geparst und dann über applyActionCode angewendet werden, damit die Änderung wirksam wird, d.h. die E-Mail-Adresse bestätigt wird.