Bạn có thể tạo ngắn hoặc dài Dynamic Links bằng API Firebase Dynamic Links. API này sử dụng một số cấu trúc tham số không bắt buộc để tạo đường liên kết. Bạn cũng có thể tạo đường liên kết ngắn từ một đường liên kết dài đã tạo trước đó. Firebase Dynamic Links tạo một URL như sau:
https://example.page.link/WXYZ
SDK C++ hoạt động cho cả Android và iOS, với một số bước thiết lập bổ sung cần thiết cho từng nền tảng.
Trước khi bắt đầu
Trước khi có thể sử dụng Firebase Dynamic Links, bạn cần:
Đăng ký dự án C++ và định cấu hình dự án đó để sử dụng Firebase.
Nếu dự án C++ của bạn đã sử dụng Firebase, thì dự án đó đã được đăng ký và định cấu hình cho Firebase.
Thêm Firebase C++ SDK vào dự án C++.
Xin lưu ý rằng việc thêm Firebase vào dự án C++ bao gồm cả các bước trong bảng điều khiển Firebase và trong dự án C++ đang mở (ví dụ: bạn tải tệp cấu hình Firebase xuống từ bảng điều khiển, sau đó di chuyển các tệp đó vào dự án C++).
Android
- Trong bảng điều khiển Firebase, hãy mở mục Dynamic Links.
Nếu bạn chưa chấp nhận điều khoản dịch vụ và đặt tiền tố URI cho Dynamic Links, hãy làm như vậy khi được nhắc.
Nếu bạn đã có tiền tố URI Dynamic Links, hãy lưu ý tiền tố đó. Bạn cần cung cấp tiền tố URI Dynamic Links khi tạo Dynamic Links theo phương thức lập trình.

- Nên làm: Chỉ định các mẫu URL được phép trong đường liên kết sâu và đường liên kết dự phòng. Bằng cách này, bạn ngăn các bên không được phép từ tạo Dynamic Links chuyển hướng từ miền của bạn đến các trang web mà bạn không kiểm soát. Xem bài viết Cho phép các mẫu URL cụ thể.
iOS
- Trong bảng điều khiển Firebase, hãy mở mục Dynamic Links.
Nếu bạn chưa chấp nhận điều khoản dịch vụ và đặt tiền tố URI cho Dynamic Links, hãy làm như vậy khi được nhắc.
Nếu bạn đã có tiền tố URI Dynamic Links, hãy lưu ý tiền tố đó. Bạn cần cung cấp miền Dynamic Links khi tạo Dynamic Links theo phương thức lập trình.

- Thư viện ứng dụng Firebase Dynamic Links C++ sử dụng các lược đồ URL tuỳ chỉnh trên iOS
để xử lý đường liên kết. Bạn phải thêm các lược đồ URL tuỳ chỉnh vào ứng dụng để hỗ trợ
việc nhận Dynamic Links:
- Để mở cấu hình dự án, hãy nhấp đúp vào tên dự án trong chế độ xem cây ở bên trái. Chọn ứng dụng của bạn trong mục TARGETS (MỤC TIÊU), sau đó chọn thẻ Info (Thông tin) và mở rộng mục URL Types (Loại URL).
- Nhấp vào nút + rồi thêm một lược đồ URL cho mã ứng dụng khách đảo ngược. Để tìm giá trị này, hãy mở tệp cấu hình
rồi tìm khoáGoogleService-Info.plist REVERSED_CLIENT_ID. Sao chép giá trị của khoá đó rồi dán vào hộp URL Schemes (Lược đồ URL) trên trang cấu hình. Để trống các trường khác. - Nhấp vào nút + rồi thêm lược đồ URL thứ hai. Lược đồ này giống với mã nhận dạng gói của ứng dụng. Ví dụ: nếu mã nhận dạng gói của bạn là
com.example.ios, hãy nhập giá trị đó vào hộp URL Schemes (Lược đồ URL). Bạn có thể tìm thấy mã nhận dạng gói của ứng dụng trong thẻ General (Chung) của cấu hình dự án (Identity > Bundle Identifier (Danh tính > Mã nhận dạng gói)).
Sử dụng bảng điều khiển Firebase
Nếu bạn muốn tạo một Dynamic Link duy nhất cho mục đích kiểm thử hoặc để nhóm tiếp thị của bạn dễ dàng tạo một đường liên kết có thể dùng trong một bài đăng trên mạng xã hội, thì cách đơn giản nhất sẽ là truy cập vào bảng điều khiển Firebase rồi tạo một đường liên kết theo cách thủ công theo biểu mẫu từng bước.
Miền tuỳ chỉnh
Bạn có thể kiểm soát thương hiệu của Dynamic Link tốt hơn bằng cách sử dụng
miền của riêng mình thay vì miền con goo.gl hoặc page.link. Hãy làm theo các hướng dẫn này để thiết lập miền tuỳ chỉnh cho
dự án của bạn.
Sử dụng API Firebase Dynamic Links
Tạo và khởi chạy ứng dụng
Trước khi có thể tạo Dynamic Links, bạn cần tạo và khởi chạy
đối tượng firebase::App.
Thêm tệp tiêu đề cho firebase::App:
#include "firebase/app.h"
Phần tiếp theo sẽ khác nhau tuỳ thuộc vào nền tảng của bạn:
Android
Tạo firebase::App, truyền môi trường JNI và tham chiếu jobject đến Hoạt động Java làm đối số:
app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);
iOS
Tạo firebase::App:
app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"));
Khởi chạy thư viện Dynamic Links
Trước khi tạo Dynamic Link, trước tiên, bạn phải khởi chạy thư viện Dynamic Links:
::firebase::dynamic_links::Initialize(app, null);
Tạo một Dynamic Link dài từ các tham số
Để tạo Đường liên kết động, hãy tạo đối tượng DynamicLinkComponents, thiết lập bất kỳ thành viên không bắt buộc nào để định cấu hình bổ sung và truyền đối tượng đó đến dynamic_links::GetShortLink hoặc dynamic_links::GetLongLink.
Ví dụ tối thiểu sau đây tạo một Đường liên kết động dài đến https://www.example.com/ mở bằng ứng dụng Android com.example.android.package_name và ứng dụng iOS com.example.ios:
firebase::dynamic_links::IOSParameters ios_parameters("com.example.ios"); firebase::dynamic_links::AndroidParameters android_parameters( "com.example.android.package_name"); firebase::dynamic_links::DynamicLinkComponents components( "https://www.example.com/", "example.page.link"); components.android_parameters = &android_parameters; components.ios_parameters = &ios_parameters; firebase::dynamic_links::GeneratedDynamicLink long_link = firebase::dynamic_links::GetLongLink(components);
Tạo Đường liên kết động ngắn Dynamic Link
Để tạo Liên kết động ngắn, hãy truyền một đường liên kết dài đã tạo trước đó đến GetShortLink hoặc tạo DynamicLinkComponents theo cách tương tự như trên.
GetShortLink có thể nhận thêm tham số cấu hình DynamicLinkOptions với PathLength; điều này cho phép bạn kiểm soát cách tạo đường liên kết. Việc tạo đường liên kết ngắn yêu cầu một yêu cầu mạng đến phần phụ trợ của Firebase
, vì vậy, GetShortLink là không đồng bộ, trả về Future<GeneratedLink>.
Ví dụ:
firebase::dynamic_links::DynamicLinkOptions short_link_options; short_link_options.path_length = firebase::dynamic_links::kPathLengthShort; firebase::Future<firebase::dynamic_links::GeneratedDynamicLink> result = firebase::dynamic_links::GetShortLink(components, short_link_options);
Nếu chương trình của bạn có một vòng lặp cập nhật chạy thường xuyên (ví dụ: 30 hoặc 60 lần mỗi giây), bạn có thể kiểm tra kết quả mỗi lần cập nhật:
if (result.status() == firebase::kFutureStatusComplete) { if (result.error() == firebase::dynamic_links::kErrorCodeSuccess) { firebase::dynamic_links::GeneratedDynamicLink link = *result.result(); printf("Create short link succeeded: %s\n", link.url.c_str()); } else { printf("Created short link failed with error '%s'\n", result.error_message()); } }