Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Skonfiguruj niestandardową domenę dla Dynamic Links

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Możesz mieć większą kontrolę nad marką Dynamic Links, używając własnej domeny zamiast subdomeny page.link . W domenach niestandardowych możesz tworzyć Linki dynamiczne, jak w poniższych przykładach:

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

Część adresu URL przed link-suffix jest nazywana prefiksem adresu URL i zawiera zarówno niestandardową domenę linku dynamicznego, jak i prefiks ścieżki. Podczas tworzenia linków dynamicznych musisz podać prefiks adresu URL.

Skonfigurowanie domeny niestandardowej wymaga uprawnień edytującego lub właściciela projektu Firebase.

Korzystanie z domeny internetowej na potrzeby Linków dynamicznych

Możesz używać tej samej domeny dla linków dynamicznych i stron internetowych, linków uniwersalnych i linków aplikacji, ale jeśli to zrobisz, musisz zadbać o to, aby adresy URL linków dynamicznych nie kolidowały z adresami internetowymi. Gdy skonfigurujesz Linki dynamiczne do korzystania z określonego prefiksu adresu URL, wszystkie adresy URL rozpoczynające się od tego prefiksu są traktowane jako linki dynamiczne, więc nie możesz używać adresów URL z tym prefiksem do wskazywania zwykłej treści hostowanej.

Jeśli na przykład chcesz utworzyć link dynamiczny do zasobu https://example.com/my-resource (strona internetowa, link uniwersalny lub link do aplikacji), nie możesz użyć https://example.com/ jako prefiks adresu URL linków dynamicznych, ponieważ spowoduje to traktowanie https://example.com/my-resource jako linku dynamicznego. Zamiast tego należy użyć prefiksu adresu URL z inną domeną lub innym prefiksem ścieżki.

Dlatego poniższe długie linki dynamiczne (i odpowiadające im krótkie linki) nie będą działać zgodnie z przeznaczeniem, ponieważ adresy URL określone przez parametr link zaczynają się od prefiksu adresu URL linku dynamicznego, https://example.com/ :

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

Jednak poniższe linki dynamiczne w długiej formie (i ich odpowiedniki krótkie) mogą działać, ponieważ prefiksy adresów URL nie powodują konfliktu z adresami URL link :

 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

Skonfiguruj domenę niestandardową w konsoli Firebase

Zazwyczaj domenę niestandardową można całkowicie skonfigurować w konsoli Firebase. Aby to zrobić:

  1. Jeśli nie masz skonfigurowanego Hostingu Firebase dla swojego projektu, otwórz stronę Hosting w konsoli Firebase, kliknij Rozpocznij i kliknij instrukcje konfiguracji. W tej chwili nie musisz wykonywać wskazanych kroków.

  2. Otwórz stronę Linki dynamiczne w konsoli Firebase.

  3. Jeśli nie korzystałeś wcześniej z Dynamic Links, kliknij Rozpocznij . W przeciwnym razie kliknij Dodaj prefiks adresu URL z menu rozwijanego.

    Następnie zakończ działanie kreatora konfiguracji, określając domenę i prefiks ścieżki, których chcesz użyć po wyświetleniu monitu.

  4. Tylko iOS : w pliku Info.plist projektu Xcode utwórz klucz o nazwie FirebaseDynamicLinksCustomDomains i ustaw go na prefiksy adresów URL linków dynamicznych aplikacji. Na przykład:

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

Ręczne konfigurowanie domeny niestandardowej

W niektórych sytuacjach, na przykład gdy masz już domenę niestandardową skonfigurowaną dla Linków dynamicznych i chcesz dodać inną domenę lub gdy dodajesz domenę już połączoną z witryną Hostingu, musisz skonfigurować domenę niestandardową ręcznie.

Aby to zrobić:

  1. Połącz swoją domenę z Hostingiem Firebase , jeśli jeszcze tego nie zrobiłeś.

    Konfiguracja domeny w Hostingu Firebase obejmuje utworzenie pliku konfiguracyjnego firebase.json w lokalnym katalogu projektu.

  2. Zaktualizuj interfejs wiersza polecenia Firebase do najnowszej wersji (wersja 6.5.0 lub nowsza).

  3. Skonfiguruj swoją witrynę Hostingową pod kątem Linków dynamicznych w pliku firebase.json projektu. Jeśli Twój projekt ma wiele witryn, pamiętaj, aby skonfigurować witrynę połączoną z domeną, której chcesz użyć.

    • Ustaw appAssociation na AUTO . Przy tym ustawieniu Hosting dynamicznie generuje assetlinks.json i skojarzenia apple-app-site-association , gdy są wymagane.

    • Określ prefiksy ścieżki, których chcesz używać dla Linków dynamicznych, ustawiając reguły przepisywania z dynamicLinks ustawionym na true . Żądania do tych ścieżek są przesyłane do Dynamic Links.

      W przeciwieństwie do reguł, które przepisują ścieżki do adresów URL, reguły ponownego zapisywania linków dynamicznych nie mogą zawierać wyrażeń regularnych.

      Jeśli masz wiele reguł przepisywania dla swojej witryny, pamiętaj, że Hosting wykonuje pierwszą regułę przepisywania, która pasuje do żądania.

    Na przykład:

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

    W powyższej konfiguracji możesz tworzyć Dynamic Links z prefiksami URL, jak w poniższych przykładach:

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

    Jeśli używasz tej domeny tylko dla Linków dynamicznych, możesz użyć ścieżki źródłowej /** , aby utworzyć Linki dynamiczne bez prefiksu ścieżki:

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

    Z powyższą regułą możesz tworzyć Dynamic Linki jak w poniższym przykładzie:

    https://your-domain/link-suffix

  4. Wdróż zmiany konfiguracji Hostingu:

    firebase deploy --only hosting

    (opcjonalnie) Możesz sprawdzić wdrożoną zawartość firebase.json za pomocą interfejsu Hosting REST API .

  5. Tylko iOS : w pliku Info.plist projektu Xcode utwórz klucz o nazwie FirebaseDynamicLinksCustomDomains i ustaw go na prefiksy adresów URL linków dynamicznych aplikacji. Na przykład:

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

Kolejność priorytetów dla Dynamic Links i Hosting

W przypadku Linków dynamicznych zwracaj szczególną uwagę na kolejność hostowania .

  • Upewnij się, że prefiks adresu URL linków dynamicznych nie powoduje konfliktu z konfiguracjami hostingu o wyższym priorytecie (na przykład hostowana zawartość statyczna zawsze ma pierwszeństwo przed przepisanymi).
  • W atrybucie rewrites odpowiedź Hostingu będzie zgodna z regułą określoną przez pierwszy source globalny element, który przechwytuje żądaną ścieżkę .

Jeśli na przykład skonfigurujesz link dynamiczny dla your-domain / source-path / link-suffix ale masz też zawartość statyczną pod adresem your-domain / source-path /index.html , treść statyczna ma pierwszeństwo. Użytkownik końcowy zobaczy index.html , a nie link dynamiczny. Podobnie, jeśli masz zawartość statyczną w your-domain / source-path / link-suffix , użytkownik końcowy zobaczy zawartość statyczną, a nie link dynamiczny.

Jeśli chcesz używać tej samej marki zarówno w przypadku linków dynamicznych, jak i hostingu, rozważ jedną z następujących opcji prefiksu adresu URL linków dynamicznych:

  • Ustaw atrybut source tak, aby pasował do prefiksu ścieżki. Na przykład, jeśli masz niestandardową domenę example.com , Twoja reguła przepisywania może wyglądać tak:

    // Domain is example.com
    "rewrites": [ {
      "source": "/links/**",  // Dynamic Links start with "https://example.com/links/"
      "dynamicLinks": true
    } ]
    
  • Skonfiguruj subdomenę, która ma być używana dla Linków dynamicznych, a następnie ustaw atrybut source tak, aby pasował do tej subdomeny. Na przykład, jeśli masz subdomenę links.example.com , Twoja reguła przepisywania może wyglądać tak:

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