Jeśli chcesz mieć większą kontrolę nad elementami marki w linkach dynamicznych, użyj własnej domeny zamiast subdomeny page.link
. Dzięki domenom niestandardowym możesz tworzyć
linki dynamiczne jak w przykładach poniżej:
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 elementem link-suffix nosi nazwę prefiksu 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.
Aby skonfigurować domenę niestandardową, musisz mieć uprawnienia edytującego lub właściciela w projekcie Firebase.
Używanie domeny internetowej w linkach dynamicznych
Możesz użyć tej samej domeny dla linków dynamicznych i stron internetowych, linków uniwersalnych i linków aplikacji, ale jeśli to zrobisz, pamiętaj, aby adresy URL w linkach dynamicznych nie kolidowały z adresami URL. Gdy skonfigurujesz linki dynamiczne tak, by korzystały z konkretnego prefiksu adresu URL, wszystkie adresy URL, które zaczynają się od tego prefiksu, będą traktowane jako linki dynamiczne, więc nie można używać adresów URL z tym prefiksem do wskazywania zwykłych treści hostowanych.
Jeśli na przykład chcesz utworzyć link dynamiczny do zasobu https://example.com/my-resource
(strony internetowej, uniwersalnego linku lub linku aplikacji), nie możesz użyć prefiksu https://example.com/
w adresie URL linków dynamicznych, ponieważ spowodowałoby to, że element https://example.com/my-resource
byłby traktowany jako link dynamiczny.
Zamiast tego musisz użyć prefiksu adresu URL z inną domeną lub innym prefiksem ścieżki.
Z tego powodu poniższe długie linki dynamiczne (i ich odpowiedniki) nie będą działać zgodnie z oczekiwaniami, ponieważ adresy URL określone w parametrze 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
Poniższe długie linki dynamiczne (i odpowiednie krótkie linki) mogą jednak zadziałać, ponieważ prefiksy adresów URL nie kolidują 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
Zwykle możesz w pełni skonfigurować domenę niestandardową w konsoli Firebase. Aby to zrobić:
Jeśli nie masz skonfigurowanego Hostingu Firebase dla swojego projektu, otwórz stronę Hostowanie w konsoli Firebase, kliknij Rozpocznij i postępuj zgodnie z instrukcjami konfiguracji. W tej chwili nie musisz wykonywać wskazanych czynności.
Otwórz stronę Linki dynamiczne w konsoli Firebase.
Jeśli nie korzystasz jeszcze z Linków dynamicznych, kliknij Rozpocznij. W przeciwnym razie w menu kliknij Dodaj prefiks adresu URL.
Następnie ukończ kreator konfiguracji, podając domenę i prefiks ścieżki, których chcesz użyć, gdy pojawi się taka prośba.
Tylko iOS: w pliku
Info.plist
projektu Xcode utwórz klucz o nazwieFirebaseDynamicLinksCustomDomains
i ustaw go na prefiksy adresów URL linków dynamicznych swojej aplikacji. 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ż skonfigurowaną domenę niestandardową na potrzeby linków dynamicznych i chcesz dodać kolejną domenę, lub gdy dodajesz domenę już połączoną z witryną w Hostingu, trzeba skonfigurować ją ręcznie.
W tym celu:
Połącz swoją domenę z Hostingiem Firebase, jeśli nie zostało to jeszcze zrobione.
Skonfigurowanie domeny w Hostingu Firebase obejmuje utworzenie pliku konfiguracji
firebase.json
w katalogu projektu lokalnego.Zaktualizuj interfejs wiersza poleceń Firebase do najnowszej wersji (6.5.0 lub nowszej).
Skonfiguruj linki dynamiczne w witrynie Hostingu w pliku
firebase.json
projektu. Jeśli Twój projekt obejmuje wiele witryn, pamiętaj, aby skonfigurować witrynę połączoną z domeną, której chcesz używać.Ustaw
appAssociation
naAUTO
. Przy tym ustawieniu Hosting dynamicznie generuje plikiassetlinks.json
iapple-app-site-association
na żądanie.Określ prefiksy ścieżek, których chcesz używać w Linkach dynamicznych, ustawiając reguły przepisywania z
dynamicLinks
natrue
. Żądania do tych ścieżek są przesyłane przez serwer proxy do linków dynamicznych.W przeciwieństwie do reguł, które przepisują ścieżki do adresów URL, reguły przepisywania linków dynamicznych nie mogą zawierać wyrażeń regularnych.
Jeśli masz w witrynie wiele reguł przepisywania, pamiętaj, że Hosting wykonuje pierwszą regułę przepisywania, która pasuje do żądania.
Przykład:
"hosting": { // ... "appAssociation": "AUTO", "rewrites": [ { "source": "/promos/**", "dynamicLinks": true }, { "source": "/links/share/**", "dynamicLinks": true } ] }
Korzystając z powyższej konfiguracji, możesz tworzyć linki dynamiczne z prefiksami adresów URL, jak w następujących przykładach:
https://your-domain/promos/link-suffix https://your-domain/links/share/link-suffix
Jeśli używasz tej domeny tylko na potrzeby linków dynamicznych, możesz użyć ścieżki źródłowej
/**
, by utworzyć linki dynamiczne bez prefiksu ścieżki:{ "source": "/**", "dynamicLinks": true }
Korzystając z powyższej reguły, możesz tworzyć linki dynamiczne jak w tym przykładzie:
https://your-domain/link-suffix
Wdróż zmiany konfiguracji Hostingu:
firebase deploy --only hosting
(Opcjonalnie) Wdrożoną treść
firebase.json
możesz sprawdzić za pomocą interfejsu API hostowania REST.Tylko iOS: w pliku
Info.plist
projektu Xcode utwórz klucz o nazwieFirebaseDynamicLinksCustomDomains
i ustaw go na prefiksy adresów URL linków dynamicznych swojej aplikacji. Przykład:<key>FirebaseDynamicLinksCustomDomains</key> <array> <string>https://example.com/promos</string> <string>https://example.com/links/share</string> </array>
Priorytetowe traktowanie linków dynamicznych i hostingu
W przypadku Linków dynamicznych szczególnie pamiętaj o kolejności priorytetu hostingu.
- Upewnij się, że prefiks adresu URL linków dynamicznych nie koliduje z konfiguracjami hostingu o wyższym priorytecie (np. hostowana treść statyczna zawsze ma wyższy priorytet niż przepisywanie).
- W atrybucie
rewrites
odpowiedź Hostingu będzie zgodna z regułą określoną przez pierwszy globsource
, który przechwytuje żądaną ścieżkę.
Jeśli np. skonfigurujesz link dynamiczny dla strony your-domain/source-path/link-suffix
, ale w adresie your-domain/source-path/index.html
masz też treści statyczne, zawartość statyczna będzie miała pierwszeństwo. Użytkownikowi będzie się wyświetlać atrybut index.html
zamiast linku dynamicznego. Podobnie, jeśli w witrynie your-domain/source-path/link-suffix
znajdują się treści statyczne, użytkownik zobaczy treść statyczną, a nie link dynamiczny.
Jeśli chcesz używać tej samej marki zarówno w Linkach dynamicznych, jak i Hostingu, rozważ zastosowanie jednej z tych opcji prefiksu adresu URL linków dynamicznych:
Ustaw atrybut
source
tak, aby pasował do prefiksu ścieżki. Jeśli np. masz niestandardową domenęexample.com
, 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órej chcesz używać na potrzeby linków dynamicznych, a następnie ustaw wartość atrybutu
source
tak, by pasowała do tej subdomeny. Jeśli na przykład masz subdomenęlinks.example.com
, 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 } ]