Sie können den Status über eine „continue“-URL übergeben, wenn Sie E-Mail-Aktionen zum Zurücksetzen von Passwörtern oder zum Bestätigen der E-Mail-Adresse eines Nutzers senden. Dadurch kann der Nutzer nach Abschluss der Aktion zur App zurückkehren. Außerdem können Sie festlegen, ob der E‑Mail-Aktionslink direkt über eine mobile App 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, für die eine Anmeldung erforderlich ist. Es kann jedoch sein, dass der Nutzer sein Passwort vergessen hat und daher den Ablauf zum Zurücksetzen des Passworts auslöst. Am Ende des Ablaufs erwartet der Nutzer, dass er zu dem Bereich der App zurückkehrt, auf den er zugreifen wollte.
Eine Anwendung darf nur Zugriff auf bestätigte Konten bieten. Bei einer Newsletter-App muss der Nutzer beispielsweise seine E-Mail-Adresse bestätigen, bevor er den Newsletter abonnieren kann. Der Nutzer durchläuft den E‑Mail-Bestätigungsvorgang und erwartet, dass er zur App zurückgeleitet wird, um sein Abo 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 die Continue-URL zu übergeben, macht dies möglich.
Die Möglichkeit, den Status über eine „continue“-URL zu übergeben, ist eine leistungsstarke Funktion von Firebase Auth, die die Nutzerfreundlichkeit erheblich verbessern kann.
Status einer Continue-URL in E-Mail-Aktionen übergeben
Damit eine URL zur Weiterleitung sicher übergeben werden kann, muss die Domain für die URL in der Firebase-Konsole auf der weißen Liste stehen. Dies erfolgt im Bereich Authentifizierung, indem Sie diese Domain der Liste Autorisierte Domains auf dem Tab Anmeldemethode hinzufügen, sofern sie dort noch nicht aufgeführt ist.
Beim Senden einer E‑Mail zum Zurücksetzen des Passworts oder einer Bestätigungs-E‑Mail muss eine FIRActionCodeSettings
-Instanz angegeben werden. Diese Schnittstelle verwendet die folgenden Parameter:
Swift
Parameter | Typ | Beschreibung |
---|---|---|
URL |
String | Legt den Link (Status-/Fortsetzungs-URL) fest, der in verschiedenen Kontexten unterschiedliche Bedeutungen hat:
|
iOSBundleID |
String | Legt die iOS-Paket-ID fest, damit Firebase Authentication ermitteln kann, ob ein reiner Weblink oder ein mobiler Link erstellt werden soll, der auf einem Apple-Gerät geöffnet wird. |
androidPackageName |
String | Legt den Android-Paketnamen fest, damit Firebase Authentication ermitteln kann, ob ein reiner Weblink oder ein mobiler Link erstellt werden soll, der auf einem Android-Gerät geöffnet wird. |
handleCodeInApp |
Bool | Gibt an, ob der E-Mail-Aktionslink zuerst in einer mobilen App oder einem Weblink geöffnet wird. Der Standardwert ist "false". Wenn der Wert auf „true“ gesetzt ist, wird der Aktionscode-Link als universeller Link oder Android-App-Link gesendet und von der App geöffnet, sofern sie installiert ist. Im Fall „false“ wird der Code zuerst an das Web-Widget gesendet und dann wird bei „Weiter“ zur App weitergeleitet, sofern sie installiert ist. |
linkDomain |
String | Wenn für ein Projekt benutzerdefinierte Hosting-Link-Domains definiert sind, geben Sie an, welche verwendet werden soll, wenn der Link von einer bestimmten mobilen App geöffnet werden soll. Andernfalls wird automatisch die Standarddomain ausgewählt (z. B. PROJECT_ID.firebaseapp.com |
dynamicLinkDomain |
String | Verworfen. Geben Sie diesen Parameter nicht an. |
Objective-C
Parameter | Typ | Beschreibung |
---|---|---|
URL |
NSString | Legt den Link (Status-/Fortsetzungs-URL) fest, der in verschiedenen Kontexten unterschiedliche Bedeutungen hat:
|
iOSBundleID |
NSString | Legt die iOS-Bundle-ID fest, damit Firebase Authentication ermitteln kann, ob ein reiner Weblink oder ein mobiler Link erstellt werden soll, der auf einem Android- oder Apple-Gerät geöffnet wird. |
androidPackageName |
NSString | Legt den Android-Paketnamen fest, damit Firebase Authentication ermitteln kann, ob ein reiner Weblink oder ein mobiler Link erstellt werden soll, der auf einem Android- oder Apple-Gerät geöffnet wird. |
handleCodeInApp |
BOOL | Gibt an, ob der E-Mail-Aktionslink zuerst in einer mobilen App oder einem Weblink geöffnet wird. Der Standardwert ist "false". Wenn der Wert auf „true“ gesetzt ist, wird der Aktionscode-Link als universeller Link oder Android-App-Link gesendet und von der App geöffnet, sofern sie installiert ist. Im Fall „false“ wird der Code zuerst an das Web-Widget gesendet und dann wird bei „Weiter“ zur App weitergeleitet, sofern sie installiert ist. |
linkDomain |
NSString | Wenn benutzerdefinierte Hosting-Linkdomains für ein Projekt definiert sind, geben Sie an, welche verwendet werden soll, wenn der Link von einer bestimmten mobilen App geöffnet werden soll. Andernfalls wird automatisch die Standarddomain ausgewählt (z. B. PROJECT_ID.firebaseapp.com |
dynamicLinkDomain |
NSString | Verworfen. Geben Sie diesen Parameter nicht an. |
Das folgende Beispiel veranschaulicht, wie Sie einen Link zur E-Mail-Bestätigung senden, der zuerst in einer mobilen App geöffnet wird, indem Sie die benutzerdefinierte Hosting-Linkdomain custom-domain.com
verwenden. Der Deeplink enthält die Nutzlast der Continue-URL
https://www.example.com/?email=user@example.com
.
Swift
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") // Specify a custom Hosting link domain to use. The domain must be // configured in Firebase Hosting and owned by the project. actionCodeSettings.linkDomain = "custom-domain.com" user.sendEmailVerification(withActionCodeSettings:actionCodeSettings { error in if error { // Error occurred. Inspect error.code and handle error. return } // Email verification sent. })
Objective-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; // Specify a custom Hosting link domain to use. The domain must be // configured in Firebase Hosting and owned by the project. actionCodeSettings.linkDomain = @"custom-domain.com"; [actionCodeSettings setAndroidPackageName:@"com.example.android"]; [user sendEmailVerificationWithActionCodeSettings:actionCodeSettings completion:^(NSError *_Nullable error) { if (error) { // Error occurred. Inspect error.code and handle error. return; } // Email verification sent. }];
Firebase Hosting-Links konfigurieren
Firebase Authentication verwendet Firebase Hosting, wenn ein Link gesendet wird, der in einer mobilen Anwendung geöffnet werden soll. Damit Sie diese Funktion nutzen können, müssen Hosting-Links in der Firebase-Konsole konfiguriert werden.
Apple-Anwendungen konfigurieren:
- Wenn Sie diese Links in Ihrer Anwendung verarbeiten möchten, müssen Sie die Linkdomain Hosting als zugeordnete Domain in den Funktionen Ihrer Anwendung konfigurieren.
- Weitere Informationen zum Empfangen von iOS-Hosting-Links
Android-Apps konfigurieren:
- Wenn Sie diese Links in Ihrer Android-Anwendung verarbeiten möchten, muss der Paketname Ihrer App in den Projekteinstellungen der Firebase-Konsole angegeben werden. Außerdem müssen der SHA‑1- und der SHA‑256-Fingerabdruck des Anwendungszertifikats angegeben werden.
- Außerdem müssen Sie den Intent-Filter für den Deeplink in Ihrer
AndroidManifest.xml
-Datei konfigurieren. - Weitere Informationen finden Sie unter Anleitung zum Empfangen von Android-Hosting-Links.
E‑Mail-Aktionen in einer Webanwendung verarbeiten
Sie können festlegen, ob der Aktionscodelink zuerst von einer Webanwendung verarbeitet und dann nach erfolgreichem Abschluss zu einer anderen Webseite oder mobilen Anwendung weitergeleitet werden soll, sofern die mobile Anwendung verfügbar ist.
Dazu wird handleCodeInApp
im Objekt FIRActionCodeSettings
(Obj-C) oder ActionCodeSettings
(Swift) auf false
gesetzt. 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 ist. Für alle Projekte wird standardmäßig eine bereitgestellt. Weitere Informationen zum Anpassen des E‑Mail-Aktions-Handlers finden Sie unter E‑Mail-Handler anpassen.
In diesem Fall ist der Link im Abfrageparameter continueURL
ein Hosting-Link, dessen Nutzlast das im ActionCodeSettings
-Objekt angegebene URL
ist.
Bei der Verarbeitung von E-Mail-Aktionen wie der E-Mail-Bestätigung muss der Aktionscode aus dem oobCode
-Abfrageparameter 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 Aktionscodelink zuerst in Ihrer mobilen Anwendung verarbeitet werden soll, sofern sie installiert ist. Wenn auf den Link auf einem Gerät geklickt wird, das die mobile App nicht unterstützt, wird er stattdessen auf einer Webseite geöffnet. Dazu wird handleCodeInApp
im Objekt FIRActionCodeSettings
(Obj-C) oder ActionCodeSettings
(Swift) auf true
gesetzt. Der Android-Paketname oder die Bundle-ID der mobilen Anwendung muss ebenfalls angegeben werden. Die hier verwendete Fallback-Web-URL, wenn keine mobile App verfügbar ist, ist die, die im Abschnitt „E-Mail-Aktionsvorlagen“ konfiguriert ist. Für alle Projekte wird ein Standard-Servicekonto 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 zur mobilen App ein Hosting-Link, dessen Nutzlast die in der Console konfigurierte Aktionscode-URL mit den Abfrageparametern oobCode
, mode
, apiKey
und continueUrl
ist. Letzteres ist das ursprüngliche URL
, das im Objekt FIRActionCodeSettings
(Obj-C) oder ActionCodeSettings
(Swift) angegeben ist. Der Aktionscode kann direkt über eine mobile Anwendung angewendet werden, ähnlich wie im Webflow, 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 oobCode
-Abfrageparameter aus dem Deeplink geparst und dann über applyActionCode
angewendet werden, damit die Änderung wirksam wird, d.h. die E-Mail-Adresse bestätigt wird.