Benutzerdefinierte Domain für Dynamic Links einrichten

Wenn Sie Ihre eigene Domain anstelle einer page.link-Subdomain verwenden, haben Sie mehr Kontrolle über das Branding Ihrer Dynamic Links. Mit benutzerdefinierten Domains können Sie Dynamic Links wie in den folgenden Beispielen erstellen:

https://example.com/link-suffix
https://example.com/links/promos/link-suffix
https://links.example.com/link-suffix
https://ex.amp.le/link-suffix

Der Teil der URL vor link-suffix wird als URL-Präfix bezeichnet. Er enthält sowohl Ihre benutzerdefinierte Dynamic Link-Domain als auch ein Pfadpräfix. Sie müssen ein URL-Präfix angeben, wenn Sie Dynamic Links erstellen.

Zum Einrichten einer benutzerdefinierten Domain benötigen Sie die Berechtigung „Bearbeiter“ oder „Inhaber“ für Ihr Firebase-Projekt.

Webdomain für Dynamic Links verwenden

Sie können dieselbe Domain für Dynamic Links und Ihre Webseiten, universellen Links und App-Links verwenden. Achten Sie dabei jedoch darauf, dass Ihre Dynamic Link-URLs nicht mit Ihren Web-URLs in Konflikt stehen. Wenn Sie Dynamic Links so konfigurieren, dass ein bestimmtes URL-Präfix verwendet wird, werden alle URLs, die mit diesem Präfix beginnen, als Dynamic Links behandelt. Sie können also keine URLs mit diesem Präfix verwenden, um auf gewöhnlich gehostete Inhalte zu verweisen.

Wenn Sie beispielsweise einen Dynamic Link zur Ressource https://example.com/my-resource (eine Webseite, einen universellen Link oder einen App-Link) erstellen möchten, können Sie https://example.com/ nicht als Dynamic Links-URL-Präfix verwenden, da https://example.com/my-resource andernfalls als Dynamic Link behandelt wird. Stattdessen müssen Sie ein URL-Präfix mit einer anderen Domain oder einem anderen Pfadpräfix verwenden.

Daher funktionieren die folgenden Dynamic Links-URLs im Langformat (und entsprechende Kurzlinks) nicht wie vorgesehen, da die vom link-Parameter angegebenen URLs mit dem Dynamic Link-URL-Präfix https://example.com/ beginnen:

 https://example.com/?link=https://example.com/my-resource
 https://example.com/?link=https://example.com/resources/my-resource

Die folgenden Dynamic Links-URLs im Langformat (und entsprechende Kurzlinks) funktionieren jedoch, da die URL-Präfixe nicht mit den link-URLs in Konflikt stehen:

 https://link.example.com/?link=https://example.com/my-resource
 https://example.com/links/?link=https://example.com/my-resource
 https://ex.amp.le/?link=https://example.com/my-resource

Benutzerdefinierte Domain in der Firebase-Konsole einrichten

Normalerweise können Sie eine benutzerdefinierte Domain vollständig in der Firebase-Konsole einrichten. Gehen Sie dazu so vor:

  1. Wenn Sie Firebase Hosting noch nicht für Ihr Projekt eingerichtet haben, öffnen Sie die Seite Hosting der Firebase-Konsole, klicken Sie auf Jetzt starten und folgen Sie der Einrichtungsanleitung. Sie müssen die angegebenen Schritte derzeit nicht ausführen.

  2. Öffne die Seite Dynamic Links der Firebase-Konsole.

  3. Wenn Sie Dynamic Links noch nicht verwendet haben, klicken Sie auf Jetzt starten. Andernfalls klicken Sie im Drop-down-Menü auf URL-Präfix hinzufügen.

    Schließen Sie dann den Einrichtungsassistenten ab und geben Sie die gewünschte Domain und das gewünschte Pfadpräfix an, wenn Sie dazu aufgefordert werden.

  4. Nur iOS: Erstellen Sie in der Datei Info.plist Ihres Xcode-Projekts einen Schlüssel namens FirebaseDynamicLinksCustomDomains und legen Sie ihn auf die Dynamic Links-URL-Präfixe Ihrer App fest. Beispiel:

    <key>FirebaseDynamicLinksCustomDomains</key>
    <array>
      <string>https://example.com/link</string>
      <string>https://example.com/promos</string>
    </array>
    

Benutzerdefinierte Domain manuell einrichten

In einigen Fällen müssen Sie Ihre benutzerdefinierte Domain manuell einrichten, z. B. wenn Sie bereits eine benutzerdefinierte Domain für Dynamic Links eingerichtet haben und eine weitere Domain hinzufügen möchten, oder wenn Sie eine Domain hinzufügen, die bereits mit einer Hosting-Website verknüpft ist.

Anleitung:

  1. Verbinden Sie Ihre Domain mit Firebase Hosting, falls Sie das noch nicht getan haben.

    Wenn Sie Ihre Domain mit Firebase Hosting einrichten, müssen Sie die Konfigurationsdatei firebase.json in Ihrem lokalen Projektverzeichnis erstellen.

  2. Aktualisieren Sie auf die neueste Version der Firebase CLI (Version 6.5.0 oder höher).

  3. Konfigurieren Sie Ihre Hosting-Website für Dynamic Links in der firebase.json-Datei Ihres Projekts. Wenn Ihr Projekt mehrere Websites hat, müssen Sie die Website konfigurieren, die mit der Domain verbunden ist, die Sie verwenden möchten.

    • Setzen Sie appAssociation auf AUTO. Bei dieser Einstellung generiert Hosting assetlinks.json- und apple-app-site-association-Dateien dynamisch, wenn sie angefordert werden.

    • Geben Sie die Pfadpräfixe an, die Sie für Dynamic Links verwenden möchten, indem Sie Umschreibregeln mit dynamicLinks = true festlegen. Anfragen an diese Pfade werden über einen Proxy an Dynamic Links weitergeleitet.

      Im Gegensatz zu Regeln, die Pfade in URLs umschreiben, dürfen Dynamic Link-Umschreibungsregeln keine regulären Ausdrücke enthalten.

      Wenn Sie mehrere Umschreibregeln für Ihre Website haben, wird mit Hosting die erste Umschreibregel ausgeführt, die mit der Anfrage übereinstimmt.

    Beispiel:

    "hosting": {
      // ...
      "appAssociation": "AUTO",
      "rewrites": [
        {
          "source": "/promos/**",
          "dynamicLinks": true
        },
        {
          "source": "/links/share/**",
          "dynamicLinks": true
        }
      ]
    }
    

    Mit der obigen Konfiguration können Sie Dynamic Links mit URL-Präfixen wie in den folgenden Beispielen erstellen:

    https://your-domain/promos/link-suffix
    https://your-domain/links/share/link-suffix
    

    Wenn Sie diese Domain nur für Dynamic Links verwenden, können Sie den Quellpfad /** verwenden, um Dynamic Links ohne Pfadpräfix zu erstellen:

    {
      "source": "/**",
      "dynamicLinks": true
    }
    

    Mit der obigen Regel können Sie Dynamic Links wie im folgenden Beispiel erstellen:

    https://your-domain/link-suffix

  4. Binden Sie die Konfigurationsänderungen für Hosting ein:

    firebase deploy --only hosting

    Optional: Sie können die bereitgestellten firebase.json-Inhalte mit der Hosting REST API prüfen.

  5. Nur iOS: Erstellen Sie in der Datei Info.plist Ihres Xcode-Projekts einen Schlüssel namens FirebaseDynamicLinksCustomDomains und legen Sie ihn auf die Dynamic Links-URL-Präfixe Ihrer App fest. Beispiel:

    <key>FirebaseDynamicLinksCustomDomains</key>
    <array>
      <string>https://example.com/promos</string>
      <string>https://example.com/links/share</string>
    </array>
    

Prioritätsreihenfolge für Dynamic Links und Hosting

Bei Dynamic Links ist die Prioritätsreihenfolge des Hostings besonders wichtig.

  • Das Dynamic Links-URL-Präfix darf nicht mit Hostingkonfigurationen mit höherer Priorität in Konflikt stehen. Beispielsweise haben gehostete statische Inhalte immer Vorrang vor Umschreibungen.
  • Innerhalb des rewrites-Attributs folgt die Hosting-Antwort der Regel, die durch das erste source-Globusmuster festgelegt ist, das den angeforderten Pfad erfasst.

Wenn Sie beispielsweise ein Dynamic Link für your-domain/source-path/link-suffix einrichten, aber auch statische Inhalte unter your-domain/source-path/index.html haben, haben die statischen Inhalte Vorrang. Ein Endnutzer sieht index.html anstelle von Dynamic Link. Wenn Sie unter your-domain/source-path/link-suffix statische Inhalte haben, sehen Endnutzer diese statt der Dynamic Link.

Wenn du dasselbe Branding für Dynamic Links und Hosting verwenden möchtest, kannst du eine der folgenden Optionen für das Dynamic Links-URL-Präfix verwenden:

  • Legen Sie das source-Attribut so fest, dass es einem Pfadpräfix entspricht. Wenn Sie beispielsweise die benutzerdefinierte Domain example.com haben, könnte Ihre Umschreibregel so aussehen:

    // Domain is example.com
    "rewrites": [ {
      "source": "/links/**",  // Dynamic Links start with "https://example.com/links/"
      "dynamicLinks": true
    } ]
    
  • Richten Sie eine Subdomain für Dynamic Links ein und legen Sie dann das source-Attribut so fest, dass es mit dieser Subdomain übereinstimmt. Wenn Sie beispielsweise eine Subdomain von links.example.com haben, könnte Ihre Umschreibregel so aussehen:

    // Domain is links.example.com
    "rewrites": [ {
      "source": "/**",  // Dynamic Links start with "https://links.example.com/"
      "dynamicLinks": true
    } ]