Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Thiết lập miền tùy chỉnh cho Liên kết động

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Bạn có thể có quyền kiểm soát tốt hơn đối với thương hiệu của Liên kết động bằng cách sử dụng tên miền của riêng bạn thay vì tên miền phụ page.link . Với miền tùy chỉnh, bạn có thể tạo Liên kết động như 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 của URL trước link-suffix được gọi là tiền tố URL và chứa cả miền Liên kết động tùy chỉnh của bạn và tiền tố đường dẫn. Bạn sẽ cần cung cấp tiền tố URL khi tạo Liên kết động.

Việc thiết lập miền tùy chỉnh yêu cầu quyền của Người chỉnh sửa hoặc Chủ sở hữu đối với dự án Firebase của bạn.

Sử dụng tên miền web của bạn cho Liên kết động

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

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

Vì vậy, các Liên kết động dạng dài sau đây (và các liên kết ngắn tương đương) sẽ không hoạt động như dự kiến ​​vì các URL được chỉ định bởi tham số link bắt đầu bằng tiền tố URL Liên kết động, https://example.com/ :

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

Nhưng các Liên kết động dạng dài sau đây (và các 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 tùy chỉnh trong bảng điều khiển Firebase

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

  1. Nếu bạn chưa thiết lập 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 Firebase, nhấp vào Bắt đầu và nhấp qua các hướng dẫn thiết lập. Bạn không cần phải hoàn thành các bước được chỉ định vào lúc này.

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

  3. Nếu bạn chưa từng sử dụng Liên kết động trước đây, 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 từ trình đơn thả xuống.

    Sau đó, hoàn thành trình hướng dẫn thiết lập, chỉ định tên 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 của bạn, hãy tạo một khóa có tên FirebaseDynamicLinksCustomDomains và đặt khóa đó thành tiền tố URL Liên kết động của ứng dụng của bạn. 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 tùy 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 tùy chỉnh cho Liên kết động và muốn thêm miền khác hoặc khi bạn thêm miền đã được kết nối với trang web Lưu trữ, bạn phải thiết lập miền tùy chỉnh của mình theo cách thủ công.

Làm như vậy:

  1. Kết nối miền của bạn với Dịch vụ lưu trữ Firebase nếu bạn chưa làm như vậy.

    Thiết lập miền của bạn với Dịch vụ lưu trữ Firebase bao gồm việc tạo tệp cấu hình firebase.json trong thư mục dự án cục bộ của bạn.

  2. Cập nhật lên phiên bản Firebase CLI mới nhất (v6.5.0 trở lên).

  3. Định cấu hình Trang web lưu trữ của bạn cho 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 đảm bảo định cấu hình trang web được kết nối với miền bạn muốn sử dụng.

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

    • Chỉ định tiền tố đường dẫn bạn muốn sử dụng cho Liên kết động bằng cách đặt quy tắc viết lại với dynamicLinks được đặt thành true . Các yêu cầu đối với những đường dẫn này được ủy quyền cho Liên kết động.

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

      Nếu bạn có nhiều quy tắc viết lại cho trang web của mình, hãy lưu ý rằng Dịch vụ lưu trữ sẽ thực thi quy tắc viết 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 Liên kết động với tiền tố URL như ví dụ sau:

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

    Nếu bạn chỉ sử dụng miền này cho Liên kết động, bạn có thể sử dụng đường dẫn nguồn /** để tạo 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 Liên kết động như ví dụ sau:

    https://your-domain/link-suffix

  4. Triển khai thay đổi cấu hình Hosting của bạn:

    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 API REST của Dịch vụ lưu trữ .

  5. Chỉ dành cho iOS : Trong tệp Info.plist của dự án Xcode của bạn, hãy tạo một khóa có tên FirebaseDynamicLinksCustomDomains và đặt khóa đó thành tiền tố URL Liên kết động của ứng dụng của bạn. 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à Hosting

Đối với 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 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 ghi 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 khối 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 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ì 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 , người dùng cuối sẽ thấy nội dung tĩnh thay vì Liên kết động.

Nếu bạn muốn sử dụng cùng một nhãn hiệu cho cả Liên kết động và Dịch vụ lưu trữ, hãy xem xét một trong các tùy chọn sau cho tiền tố URL Liên kết động của bạn:

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

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