Możesz mieć większą kontrolę nad marką Dynamic Links, używając własnej domeny zamiast domeny podrzędnej page.link
. Dzięki domenom niestandardowym możesz tworzyć Dynamic Links takie jak te:
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 to prefiks URL. Zawiera on zarówno niestandardową domenę Dynamic Link, jak i prefiks ścieżki. Podczas tworzenia Dynamic Links musisz podać prefiks URL.
Aby skonfigurować domenę niestandardową, musisz mieć uprawnienia Edytujący lub Właściciel w projekcie Firebase.
Używanie domeny internetowej dla usługi Dynamic Links
Możesz użyć tej samej domeny w domenie Dynamic Links oraz na swoich stronach internetowych, w linkach uniwersalnych i linkach aplikacji, ale jeśli to zrobisz, pamiętaj, aby adresy URL w polu Dynamic Link nie kolidowały z adresami URL stron internetowych. Jeśli skonfigurujesz Dynamic Links tak, aby używał określonego prefiksu adresu URL, wszystkie adresy URL rozpoczynające się od tego prefiksu będą traktowane jako Dynamic Links, dlatego nie możesz używać adresów URL z tym prefiksem do wskazywania zwykłych treści hostowanych.
Jeśli np. chcesz utworzyć Dynamic Link do zasobu https://example.com/my-resource
(strony internetowej, uniwersalnego linku lub linku aplikacji), nie możesz użyć https://example.com/
jako prefiksu adresu URL Dynamic Links, ponieważ spowoduje to, że https://example.com/my-resource
będzie traktowany jako Dynamic Link.
Zamiast tego musisz użyć prefiksu adresu URL z inną domeną lub innym prefiksem ścieżki.
Dlatego te długie adresy Dynamic Links (i odpowiednie krótkie linki) nie będą działać zgodnie z oczekiwaniami, ponieważ adresy URL określone przez parametr link
zaczynają się od prefiksu adresu URL Dynamic Link, https://example.com/
:
https://example.com/?link=https://example.com/my-resource https://example.com/?link=https://example.com/resources/my-resource
Natomiast te długie adresy Dynamic Links (i odpowiednie krótkie linki) mogą działać, ponieważ ich prefiksy nie kolidują z adresami 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
Konfigurowanie domeny niestandardowej w konsoli Firebase
Zwykle możesz w pełni skonfigurować domenę niestandardową w konsoli Firebase. Do:
Jeśli nie masz skonfigurowanego Firebase Hosting w projekcie, otwórz stronę Hosting konsoli Firebase, kliknij Rozpocznij i przejrzyj instrukcje konfiguracji. W tej chwili nie musisz wykonywać wskazanych czynności.
Otwórz stronę Dynamic Links w konsoli Firebase.
Jeśli jeszcze nie używasz usługi Dynamic Links, kliknij Rozpocznij. Jeśli nie, kliknij Dodaj prefiks adresu URL w menu.
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 adresu URL Dynamic Links Twojej 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, np. gdy masz już domenę niestandardową skonfigurowaną dla Dynamic Links i chcesz dodać kolejną domenę lub gdy dodajesz domenę, która jest już połączona z witryną Hosting, musisz skonfigurować domenę niestandardową ręcznie.
Aby to zrobić:
Połącz domenę z Firebase Hosting, jeśli nie zostało to jeszcze zrobione.
Konfigurowanie domeny za pomocą usługi Firebase Hosting obejmuje utworzenie pliku konfiguracji
firebase.json
w lokalnym katalogu projektu.Zaktualizuj interfejs wiersza poleceń Firebase do najnowszej wersji (6.5.0 lub nowszej).
Skonfiguruj witrynę Hosting pod kątem usługi Dynamic Links 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
. Dzięki temu Hosting dynamicznie generuje plikiassetlinks.json
iapple-app-site-association
, gdy zostaną o to poproszone.Określ prefiksy ścieżek, których chcesz używać w przypadku Dynamic Links, ustawiając wartość
dynamicLinks
w regułach przekształcania natrue
. Żądania dotyczące tych ścieżek są przekierowywane do Dynamic Links.W odróżnieniu od reguł, które przepisują ścieżki na adresy URL, Dynamic Linkreguły przepisywania nie mogą zawierać wyrażeń regularnych.
Jeśli masz w witrynie kilka reguł przepisywania, pamiętaj, żeHosting wykonuje pierwszą regułę przepisywania, która pasuje do żądania.
Przykład:
"hosting": { // ... "appAssociation": "AUTO", "rewrites": [ { "source": "/promos/**", "dynamicLinks": true }, { "source": "/links/share/**", "dynamicLinks": true } ] }
Przy użyciu tej konfiguracji możesz utworzyć Dynamic Links z prefiksami adresów URL takimi jak te:
https://your-domain/promos/link-suffix https://your-domain/links/share/link-suffix
Jeśli używasz tej domeny tylko do Dynamic Links, możesz użyć ścieżki źródłowej
/**
, aby utworzyć Dynamic Links bez prefiksu ścieżki:{ "source": "/**", "dynamicLinks": true }
Za pomocą powyższej reguły możesz utworzyć Dynamic Links w taki sposób:
https://your-domain/link-suffix
Wprowadź zmiany konfiguracji Hosting:
firebase deploy --only hosting
(opcjonalnie) za pomocą interfejsu Hosting API REST możesz sprawdzić wdrożone treści
firebase.json
.Tylko iOS: w pliku
Info.plist
projektu Xcode utwórz klucz o nazwieFirebaseDynamicLinksCustomDomains
i ustaw go jako prefiksy adresów URL Dynamic Links aplikacji. Przykład:<key>FirebaseDynamicLinksCustomDomains</key> <array> <string>https://example.com/promos</string> <string>https://example.com/links/share</string> </array>
Priorytet: Dynamic Links i Hosting
W przypadku Dynamic Links należy zwrócić szczególną uwagę na kolejność priorytetów hostingu.
- Upewnij się, że prefiks URL-a Dynamic Links nie jest w konflikcie z konfiguracjami hostingu o wyższym priorytecie (na przykład hostowane treści statyczne mają zawsze wyższy priorytet niż zastąpienia).
- W atrybucie
rewrites
odpowiedź Hosting będzie przestrzegać reguły określonej przez pierwszy wzór globusource
, który obejmuje żądaną ścieżkę.
Jeśli np. skonfigurujesz Dynamic Link w przypadku elementu your-domain/source-path/link-suffix
, ale w adresie your-domain/source-path/index.html
masz też treści statyczne, pierwszeństwo będą miały treści statyczne. Użytkownik końcowy zobaczy index.html
, a nie Dynamic Link. Podobnie, jeśli w miejscu your-domain/source-path/link-suffix
masz treści statyczne, użytkownik końcowy zobaczy treści statyczne, a nie Dynamic Link.
Jeśli chcesz używać tego samego brandingu w przypadku Dynamic Links i Hosting, rozważ wybranie jednej z tych opcji prefiksu adresu URL Dynamic Links:
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ć w przypadku atrybutu Dynamic Links, a następnie skonfiguruj atrybut
source
tak, aby pasował 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 } ]