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 các thành phần xây dựng thương hiệu của Đường liên kết động bằng cách sử dụng miền riêng của mình thay vì sử dụng miền con page.link. Với miền tuỳ chỉnh, bạn có thể tạo Đường liên kết động 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 Đường liên kết động 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 Đường liên kết động.

Để thiết lập miền tuỳ chỉnh, bạn phải có quyền của 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 Đường liên kết động

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

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

Vì vậy, các Đường liên kết động 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 đường liên kết động là 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, các Đường liên kết động 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ì các tiền tố URL không xung đột với các 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 của Firebase

Thường thì bạn có thể thiết lập miền tuỳ chỉnh hoàn toàn trong bảng điều khiển của Firebase. Cách làm như sau:

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

  2. Mở trang Liên kết động trong bảng điều khiển của Firebase.

  3. Nếu bạn chưa từng sử dụng Đường liên kết động, 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 tiền tố miền và đường dẫn mà 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 đường liên kết động 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 một miền tuỳ chỉnh cho Đường liên kết động và muốn thêm một miền khác hoặc khi thêm một miền đã kết nối với một trang web Lưu trữ, 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 tính năng Lưu trữ Firebase nếu bạn chưa thực hiện.

    Để thiết lập miền với tính năng Lưu trữ Firebase, bạn cần tạo tệp cấu hình firebase.json trong thư mục dự án cục bộ của mình.

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

  3. Định cấu hình trang web Lưu trữ cho các Liên kết động 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 kết nối với miền bạn muốn sử dụng.

    • Thiết lập appAssociation thành AUTO. Với chế độ cài đặt này, tính năng Lưu trữ sẽ linh động tạo các tệp assetlinks.jsonapple-app-site-association khi có yêu cầu.

    • Chỉ định các tiền tố đường dẫn mà bạn muốn sử dụng cho Đường liên kết động bằng cách đặt quy tắc ghi lại với dynamicLinks được đặt thành true. Yêu cầu đến các đường dẫn này sẽ được xử lý qua Đường liên kết động.

      Không giống như các quy tắc ghi lại đường dẫn đến URL, quy tắc ghi lại của Đường liên kết động không thể chứa biểu thức chính quy.

      Nếu bạn có nhiều quy tắc ghi lại cho trang web, hãy lưu ý rằng Dịch vụ lưu trữ sẽ thực thi quy tắc ghi lại đầu tiên phù hợ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 Đường liên kết động có tiền tố URL như những 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 Đường liên kết động, bạn có thể dùng đường dẫn nguồn /** để tạo Đường liên kết động 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 Đường liên kết động như ví dụ sau:

    https://your-domain/link-suffix

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

    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 API REST của máy chủ lưu trữ.

  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 đường liên kết động 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 Liên kết động và Lưu trữ

Đối với Đường liên kết động, hãy đặc biệt lưu ý về thứ tự ưu tiên lưu trữ.

  • Đảm bảo rằng tiền tố URL đường liên kết động của bạn 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 ưu tiên hơn so với việc viết lại).
  • Trong thuộc tính rewrites, phản hồi Lưu trữ sẽ tuân theo quy tắc được chỉ định bởi nhu cầu source đầu tiên nắm bắt đường dẫn được yêu cầu.

Ví dụ: nếu bạn thiết lập một Đường liên kết động cho your-domain/source-path/link-suffix nhưng bạn 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ì Đường liên kết động. Tương tự, nếu bạn có nội dung tĩnh tại your-domain/source-path/link-suffix, thì người dùng cuối sẽ nhìn thấy nội dung tĩnh thay vì Đường liên kết động.

Nếu bạn muốn sử dụng cùng một thương hiệu cho cả Đường liên kết động và Lưu trữ, hãy cân nhắc sử dụng một trong các lựa chọn sau cho tiền tố URL đường liên kết động:

  • Đặt thuộc tính source để khớp với một tiền tố đường dẫn. Ví dụ: nếu bạn có miền tuỳ chỉnh là example.com, thì quy tắc ghi lại của bạn 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 Đường liên kết động, sau đó đặt thuộc tính source sao cho khớp với miền con đó. Ví dụ: nếu bạn có miền con là links.example.com, thì quy tắc ghi lại có thể là:

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