Thiết lập miền tuỳ chỉnh cho Đường liên kết động

Bạn có thể kiểm soát tốt hơn hoạt động xây dựng thương hiệu của Dynamic Links bằng cách sử dụng miền của riêng mình thay vì miền con page.link. Với miền tuỳ chỉnh, bạn có thể tạo Dynamic Links như các ví dụ sau:

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

Phần URL trước link-suffix được gọi là tiền tố URL và chứa cả miền Dynamic Link tuỳ chỉnh và tiền tố đường dẫn. Bạn sẽ cần cung cấp tiền tố URL khi tạo Dynamic Links.

Để thiết lập miền tuỳ chỉnh, bạn cần có quyền Người chỉnh sửa hoặc Chủ sở hữu đối với dự án Firebase.

Sử dụng miền web của bạn cho Dynamic Links

Bạn có thể sử dụng cùng một miền cho Dynamic Links và các trang web, Đường liên kết phổ quát và Đường liên kết trong ứng dụng. Tuy nhiên, nếu làm vậy, bạn phải đảm bảo rằng URL Dynamic Link không xung đột với URL trang web. Khi bạn định cấu hình Dynamic Links để sử dụng một tiền tố URL cụ thể, tất cả URL bắt đầu bằng tiền tố đó sẽ được coi là Dynamic Links, vì vậy, bạn không thể sử dụng URL có tiền tố đó để trỏ đến nội dung được lưu trữ thông thường.

Ví dụ: nếu muốn tạo Dynamic Link cho tài nguyên https://example.com/my-resource (trang web, Đường liên kết phổ quát hoặc Đường liên kết đến ứng dụng), bạn không thể sử dụng https://example.com/ làm tiền tố URL Dynamic Links, vì việc này sẽ khiến https://example.com/my-resource được coi là Dynamic Link. Thay vào đó, bạn phải sử dụng tiền tố URL có miền hoặc tiền tố đường dẫn khác.

Vì vậy, Dynamic Links dạng dài sau đây (và các đường liên kết ngắn tương đương) sẽ không hoạt động như dự kiến vì các URL do tham số link chỉ định bắt đầu bằng tiền tố 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

Tuy nhiên, Dynamic Links dạng dài sau đây (và các đường liên kết ngắn tương đương) có thể hoạt động, vì tiền tố URL không xung đột với 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

Thiết lập miền tuỳ chỉnh trong bảng điều khiển Firebase

Thông thường, bạn có thể thiết lập hoàn toàn một miền tuỳ chỉnh trong bảng điều khiển Firebase. Để làm như vậy:

  1. Nếu bạn chưa thiết lập Firebase Hosting cho dự án, hãy mở trang Hosting của bảng điều khiển Firebase, nhấp vào Bắt đầu rồi nhấp vào hướng dẫn thiết lập. Bạn không cần phải hoàn tất các bước được chỉ định tại thời điểm này.

  2. Mở trang Dynamic Links của bảng điều khiển Firebase.

  3. Nếu bạn chưa từng sử dụng Dynamic Links, hãy nhấp vào Bắt đầu. Nếu không, hãy nhấp vào Thêm tiền tố URL trong trình đơn thả xuống.

    Sau đó, hãy hoàn tất trình hướng dẫn thiết lập, chỉ định miền và tiền tố đường dẫn bạn muốn sử dụng khi được nhắc.

  4. Chỉ dành cho iOS: Trong tệp Info.plist của dự án Xcode, hãy tạo một khoá có tên là FirebaseDynamicLinksCustomDomains và đặt khoá đó thành tiền tố URL Dynamic Links của ứng dụng. Ví dụ:

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

Thiết lập miền tuỳ chỉnh theo cách thủ công

Trong một số trường hợp, chẳng hạn như khi bạn đã thiết lập miền tuỳ chỉnh cho Dynamic Links và muốn thêm một miền khác, hoặc khi bạn thêm một miền đã kết nối với trang web Hosting, bạn phải thiết lập miền tuỳ chỉnh theo cách thủ công.

Cách thực hiện:

  1. Kết nối miền của bạn với Firebase Hosting nếu bạn chưa thực hiện việc này.

    Việc thiết lập miền bằng Firebase Hosting bao gồm việc tạo tệp cấu hình firebase.json trong thư mục dự án cục bộ.

  2. Cập nhật lên phiên bản mới nhất của CLI Firebase (phiên bản 6.5.0 trở lên).

  3. Định cấu hình trang web Hosting cho Dynamic Links trong tệp firebase.json của dự án. Nếu dự án của bạn có nhiều trang web, hãy nhớ định cấu hình trang web được kết nối với miền mà bạn muốn sử dụng.

    • Đặt appAssociation thành AUTO. Với chế độ cài đặt này, Hosting sẽ tạo động các tệp assetlinks.jsonapple-app-site-association khi được yêu cầu.

    • Chỉ định tiền tố đường dẫn mà bạn muốn sử dụng cho Dynamic Links bằng cách đặt các quy tắc ghi đè với dynamicLinks thành true. Các yêu cầu đến các đường dẫn này sẽ được chuyển tiếp đến Dynamic Links.

      Không giống như các quy tắc ghi đè đường dẫn đến URL, quy tắc ghi đè Dynamic Link không được chứa biểu thức chính quy.

      Nếu bạn có nhiều quy tắc viết lại cho trang web, hãy lưu ý rằng Hosting sẽ thực thi quy tắc viết lại đầu tiên khớp với yêu cầu.

    Ví dụ:

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

    Với cấu hình ở trên, bạn có thể tạo Dynamic Links bằng tiền tố URL như các ví dụ sau:

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

    Nếu chỉ sử dụng miền này cho Dynamic Links, bạn có thể sử dụng đường dẫn nguồn là /** để tạo Dynamic Links không có tiền tố đường dẫn:

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

    Với quy tắc trên, bạn có thể tạo Dynamic Links như ví dụ sau:

    https://your-domain/link-suffix

  4. Triển khai các thay đổi về cấu hình Hosting:

    firebase deploy --only hosting

    (không bắt buộc) Bạn có thể kiểm tra nội dung firebase.json đã triển khai bằng cách sử dụng Hosting REST API.

  5. Chỉ dành cho iOS: Trong tệp Info.plist của dự án Xcode, hãy tạo một khoá có tên là FirebaseDynamicLinksCustomDomains và đặt khoá đó thành tiền tố URL Dynamic Links của ứng dụng. Ví dụ:

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

Thứ tự ưu tiên cho Dynamic LinksHosting

Đối với Dynamic Links, hãy đặc biệt lưu ý đến thứ tự ưu tiên lưu trữ.

  • Đảm bảo rằng tiền tố URL Dynamic Links không xung đột với các cấu hình lưu trữ có mức độ ưu tiên cao hơn (ví dụ: nội dung tĩnh được lưu trữ luôn có mức độ ưu tiên cao hơn so với nội dung được ghi đè).
  • Trong thuộc tính rewrites, phản hồi Hosting sẽ tuân theo quy tắc do biểu thức chính quy source đầu tiên ghi lại đường dẫn được yêu cầu chỉ định.

Ví dụ: nếu bạn thiết lập Dynamic Link cho your-domain/source-path/link-suffix nhưng cũng có nội dung tĩnh tại your-domain/source-path/index.html, thì nội dung tĩnh sẽ được ưu tiên. Người dùng cuối sẽ thấy index.html thay vì Dynamic Link. Tương tự, nếu bạn có nội dung tĩnh tại your-domain/source-path/link-suffix, người dùng cuối sẽ thấy nội dung tĩnh thay vì Dynamic Link.

Nếu bạn muốn sử dụng cùng một thương hiệu cho cả Dynamic LinksHosting, hãy cân nhắc một trong các lựa chọn sau đây cho tiền tố URL Dynamic Links:

  • Đặt thuộc tính source để khớp với tiền tố đường dẫn. Ví dụ: nếu bạn có một miền tuỳ chỉnh là example.com, thì quy tắc viết lại có thể là:

    // Domain is example.com
    "rewrites": [ {
      "source": "/links/**",  // Dynamic Links start with "https://example.com/links/"
      "dynamicLinks": true
    } ]
    
  • Thiết lập một miền con để sử dụng cho Dynamic Links, sau đó đặt thuộc tính source để khớp với miền con đó. Ví dụ: nếu bạn có một miền con là links.example.com, thì quy tắc viết lại có thể là:

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