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 Aktionslink für die E-Mail-Aktion direkt über eine mobile App verarbeitet werden soll, wenn diese installiert ist, oder ü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. Der Nutzer hat aber vielleicht sein Passwort vergessen und löst daher den Vorgang zum Zurücksetzen des Passworts aus. Am Ende des Vorgangs erwartet der Nutzer, dass er zu dem Bereich der App zurückkehrt, 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 in einer Apple-App einen Vorgang zum Zurücksetzen des Passworts oder zur E-Mail-Bestätigung startet, erwartet er in der Regel, 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 Sie eine URL zur Weiterleitung sicher übergeben können, müssen Sie die Domain für die URL als autorisierte Domain hinzufügen:
Rufen Sie in der Firebase Console den Sicherheit > Authentifizierung > Einstellungen Tab auf.
Klicken Sie im Bereich Autorisierte Domains auf Domain hinzufügen und fügen Sie die URL hinzu.
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 Paket-ID fest. Der Link wird in einer Apple-App geöffnet, wenn diese installiert ist. Die App muss in der Console registriert sein. Wenn keine Paket-ID angegeben ist, wird der Wert dieses Felds auf die Paket-ID des Haupt-Bundles der App festgelegt. | |||
androidPackageName |
String | Legt den Android-Paketnamen fest. Der Link wird in einer Android-App geöffnet, 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 Google Play Store weitergeleitet, um die App zu aktualisieren. Die Android-App muss in der Console registriert sein. | |||
handleCodeInApp |
bool | Gibt an, ob der Aktionslink für die E-Mail zuerst in einer mobilen App oder in einem Weblink 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 in der App geöffnet , falls diese installiert ist. Wenn der Wert „false“ ist, wird der Code zuerst an das Web-Widget gesendet und dann bei der Weiterleitung zur App weitergeleitet, falls diese 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 gezeigt, 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 Link-Domain erstellt haben, tun Sie dies jetzt.
Notieren Sie sich die Dynamic Link-Domain, falls Sie bereits eine erstellt haben. Eine Dynamic Link-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-App 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 unter Android Dynamic Links empfangen.
Apple-Anwendungen konfigurieren:
- Wenn Sie diese Links in Ihrer Anwendung verarbeiten möchten, muss die Paket-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 Paket-ID als benutzerdefiniertes Schema für eingehende URLs festlegen.
- Weitere Informationen finden Sie unter Dynamic Links für Apple-Plattformen empfangen.
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.
Dazu setzen Sie handleCodeInApp im Objekt ActionCodeSettings 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 URL angegebene ActionCodeSettings Objekt 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 für Sie 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 auch über androidInstallApp 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.
Dazu setzen Sie handleCodeInApp im Objekt ActionCodeSettings 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 in ActionCodeSettings 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 für Sie zu parsen. Der Aktionscode kann
direkt über eine mobile Anwendung angewendet werden, ähnlich wie bei der Verarbeitung über
den Webvorgang, der im
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.