Catch up on highlights from Firebase at Google I/O 2023. Learn more

Dinamik Bağlantılar için özel bir alan oluşturun

Bir page.link alt alan adı yerine kendi alan adınızı kullanarak Dinamik Bağlantılarınızın markalaması üzerinde daha fazla kontrole sahip olabilirsiniz. Özel etki alanları ile aşağıdaki örneklerde olduğu gibi Dinamik Bağlantılar oluşturabilirsiniz:

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

URL'nin link-suffix önceki kısmına URL öneki adı verilir ve hem özel Dinamik Bağlantı etki alanınızı hem de bir yol önekini içerir. Dinamik Bağlantılar oluşturduğunuzda bir URL ön eki sağlamanız gerekecektir.

Özel bir alan ayarlamak, Firebase projenizde Editör veya Sahip izni gerektirir.

Web etki alanınızı Dinamik Bağlantılar için kullanma

Dinamik Bağlantılarınız ve web sayfalarınız, Evrensel Bağlantılarınız ve Uygulama Bağlantılarınız için aynı etki alanını kullanabilirsiniz, ancak kullanırsanız, Dinamik Bağlantı URL'lerinizin web URL'lerinizle çakışmamasına dikkat etmelisiniz. Dinamik Bağlantıları belirli bir URL ön eki kullanacak şekilde yapılandırdığınızda, bu önekle başlayan tüm URL'ler Dinamik Bağlantılar olarak değerlendirilir, bu nedenle bu ön eke sahip URL'leri sıradan barındırılan içeriğe işaret etmek için kullanamazsınız.

Örneğin, https://example.com/my-resource (bir web sayfası, Evrensel Bağlantı veya Uygulama Bağlantısı) kaynağına bir Dinamik Bağlantı oluşturmak istiyorsanız https://example.com/ kullanamazsınız. https://example.com/ Dinamik Bağlantılar URL öneki olarak, çünkü bunu yapmak https://example.com/my-resource Dinamik Bağlantı olarak değerlendirilmesine neden olur. Bunun yerine, farklı bir etki alanı veya farklı bir yol öneki ile bir URL öneki kullanmalısınız.

Bu nedenle, aşağıdaki uzun biçimli Dinamik Bağlantılar (ve eşdeğer kısa bağlantılar), link parametresi tarafından belirtilen URL'ler Dinamik Bağlantı URL öneki https://example.com/ ile başladığından amaçlandığı gibi çalışmaz:

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

Ancak aşağıdaki uzun biçimli Dinamik Bağlantılar (ve eşdeğer kısa bağlantılar), URL ön ekleri link URL'leriyle çakışmadığı için çalışabilir:

 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

Firebase konsolunda özel bir alan oluşturun

Özel bir etki alanını genellikle tamamen Firebase konsolunda ayarlayabilirsiniz. Böyle yaparak:

  1. Projeniz için Firebase Barındırma kurmadıysanız, Firebase konsolunun Barındırma sayfasını açın, Başlayın 'a tıklayın ve kurulum talimatlarını tıklayın. Şu anda belirtilen adımları tamamlamanız gerekmiyor.

  2. Firebase konsolunun Dinamik Bağlantılar sayfasını açın.

  3. Dinamik Bağlantıları daha önce kullanmadıysanız, Başlayın 'ı tıklayın. Aksi takdirde, açılır menüden URL öneki ekle'yi tıklayın.

    Ardından, istendiğinde kullanmak istediğiniz etki alanı ve yol önekini belirterek kurulum sihirbazını tamamlayın.

  4. Yalnızca iOS : Xcode projenizin Info.plist dosyasında FirebaseDynamicLinksCustomDomains adında bir anahtar oluşturun ve bunu uygulamanızın Dynamic Links URL öneklerine ayarlayın. Örneğin:

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

Manuel olarak özel bir etki alanı kurun

Bazı durumlarda, örneğin, Dinamik Bağlantılar için zaten ayarlanmış bir özel etki alanınız olduğunda ve başka bir etki alanı eklemek istediğinizde veya zaten bir Barındırma sitesine bağlı bir etki alanı eklediğinizde, özel etki alanınızı manuel olarak ayarlamanız gerekir.

Böyle yaparak:

  1. Henüz yapmadıysanız, alan adınızı Firebase Hosting'e bağlayın .

    Etki alanınızı Firebase Barındırma ile ayarlamak, yerel proje dizininizde firebase.json yapılandırma dosyasını oluşturmayı içerir.

  2. Firebase CLI'nin en son sürümüne güncelleyin (v6.5.0 veya üzeri).

  3. Barındırma sitenizi, projenizin firebase.json dosyasında Dinamik Bağlantılar için yapılandırın. Projenizde birden çok site varsa, kullanmak istediğiniz etki alanına bağlı siteyi yapılandırdığınızdan emin olun.

    • appAssociation AUTO olarak ayarlayın. Bu ayarla, Barındırma, talep edildiğinde, assetlinks.json ve apple-app-site-association dosyalarını dinamik olarak oluşturur.

    • dynamicLinks true olarak ayarlıyken yeniden yazma kurallarını ayarlayarak Dynamic Links için kullanmak istediğiniz yol öneklerini belirtin. Bu yollara yönelik istekler, Dinamik Bağlantılara temsil edilir.

      URL'lere giden yolları yeniden yazan kuralların aksine, Dinamik Bağlantı yeniden yazma kuralları normal ifadeler içeremez.

      Siteniz için birden fazla yeniden yazma kuralınız varsa, Hosting'in istekle eşleşen ilk yeniden yazma kuralını yürüttüğünü unutmayın.

    Örneğin:

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

    Yukarıdaki yapılandırmayla, aşağıdaki örneklerde olduğu gibi URL ön ekleriyle Dinamik Bağlantılar oluşturabilirsiniz:

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

    Bu etki alanını yalnızca Dinamik Bağlantılar için kullanırsanız, yol ön eki olmayan Dinamik Bağlantılar oluşturmak için /** kaynak yolunu kullanabilirsiniz:

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

    Yukarıdaki kural ile aşağıdaki örnekteki gibi Dinamik Bağlantılar oluşturabilirsiniz:

    https://your-domain/link-suffix

  4. Barındırma yapılandırma değişikliklerinizi dağıtın:

    firebase deploy --only hosting

    (isteğe bağlı) Dağıtılan firebase.json içeriğini Hosting REST API'sini kullanarak kontrol edebilirsiniz.

  5. Yalnızca iOS : Xcode projenizin Info.plist dosyasında FirebaseDynamicLinksCustomDomains adında bir anahtar oluşturun ve bunu uygulamanızın Dynamic Links URL öneklerine ayarlayın. Örneğin:

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

Dinamik Bağlantılar ve Barındırma için öncelik sırası

Dinamik Bağlantılar için, barındırma öncelik sırasına özellikle dikkat edin.

  • Dinamik Bağlantılar URL önekinizin daha yüksek öncelikli barındırma yapılandırmalarıyla çakışmadığından emin olun (örneğin, barındırılan statik içeriğin yeniden yazma işlemlerine göre her zaman önceliği vardır).
  • rewrites özniteliği içinde, Barındırma yanıtı , istenen yolu yakalayan ilk source küre tarafından belirtilen kurala uyacaktır.

Örneğin, your-domain / source-path / link-suffix için bir Dinamik Bağlantı ayarlarsanız ancak your-domain / source-path /index.html adresinde de statik içeriğiniz varsa, statik içerik önceliklidir. Bir son kullanıcı, Dinamik Bağlantı yerine index.html dosyasını görecektir. Benzer şekilde, your-domain / source-path / link-suffix konumunda statik içeriğiniz varsa, son kullanıcı Dinamik Bağlantı yerine statik içeriği görecektir.

Hem Dinamik Bağlantılar hem de Barındırma için aynı markayı kullanmak istiyorsanız, Dinamik Bağlantılar URL ön ekiniz için aşağıdaki seçeneklerden birini göz önünde bulundurun:

  • source özniteliğinizi bir yol önekiyle eşleşecek şekilde ayarlayın. Örneğin, example.com özel bir etki alanınız varsa, yeniden yazma kuralınız şöyle olabilir:

    // Domain is example.com
    "rewrites": [ {
      "source": "/links/**",  // Dynamic Links start with "https://example.com/links/"
      "dynamicLinks": true
    } ]
    
  • Dinamik Bağlantılar için kullanılacak bir alt alan adı ayarlayın, ardından source özniteliğinizi bu alt alan adıyla eşleşecek şekilde ayarlayın. Örneğin, bir links.example.com alt etki alanınız varsa, yeniden yazma kuralınız şöyle olabilir:

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