Các thông số và điều kiện của Cấu hình từ xa


Bạn có thể định cấu hình mẫu cho cả trường hợp sử dụng máy khách và máy chủ. Mẫu ứng dụng được phân phát cho mọi phiên bản ứng dụng triển khai SDK ứng dụng Firebase cho Remote Config, bao gồm cả ứng dụng Android, Apple, Web, Unity, Flutter và C++. Các tham số và giá trị Remote Config từ các mẫu dành riêng cho máy chủ được phân phát cho các hoạt động triển khai Remote Config (bao gồm cả Cloud Run và Cloud Functions) sử dụng SDK Node.js dành cho quản trị viên Firebase phiên bản 12.1.0 trở lên.

Khi sử dụng bảng điều khiển Firebase hoặc API phần phụ trợ Remote Config, bạn sẽ xác định một hoặc nhiều tham số (cặp khoá-giá trị) và cung cấp giá trị mặc định trong ứng dụng cho các tham số đó. Bạn có thể ghi đè các giá trị mặc định trong ứng dụng bằng cách xác định các giá trị tham số. Khoá tham số và giá trị tham số là chuỗi, nhưng giá trị tham số có thể được truyền dưới dạng các loại dữ liệu khác khi bạn sử dụng các giá trị này trong ứng dụng.

Bằng cách sử dụng bảng điều khiển Firebase, Admin SDK hoặc Remote Config REST API, bạn có thể tạo các giá trị mặc định mới cho các tham số của mình, cũng như các giá trị có điều kiện được dùng để nhắm đến các nhóm thực thể ứng dụng. Mỗi khi bạn cập nhật cấu hình trong bảng điều khiển Firebase, Firebase sẽ tạo và phát hành phiên bản mới của mẫu Remote Config. Phiên bản trước đó được lưu trữ, cho phép bạn truy xuất hoặc khôi phục nếu cần. Bạn có thể sử dụng các thao tác này trong bảng điều khiển Firebase, Firebase Admin SDK và API REST, đồng thời được mô tả chi tiết hơn trong phần Quản lý phiên bản mẫu Remote Config.

Hướng dẫn này giải thích các tham số, điều kiện, quy tắc, giá trị có điều kiện và cách các giá trị tham số được ưu tiên trên phần phụ trợ Remote Config và trong ứng dụng của bạn. Hướng dẫn này cũng cung cấp thông tin chi tiết về các loại quy tắc dùng để tạo điều kiện.

Điều kiện, quy tắc và giá trị có điều kiện

Một điều kiện được dùng để nhắm mục tiêu một nhóm các phiên bản ứng dụng. Điều kiện được tạo thành từ một hoặc nhiều quy tắc, tất cả đều phải đánh giá thành true để điều kiện đánh giá thành true cho một thực thể ứng dụng nhất định. Nếu giá trị cho một quy tắc không được xác định (ví dụ: khi không có giá trị nào), thì quy tắc đó sẽ đánh giá thành false.

Ví dụ: bạn có thể tạo một tham số xác định tên mô hình ngôn ngữ lớn (LLM) và chuỗi phiên bản, đồng thời phân phát phản hồi từ nhiều mô hình dựa trên quy tắc tín hiệu tuỳ chỉnh. Trong trường hợp sử dụng này, bạn có thể sử dụng phiên bản mô hình ổn định làm giá trị mặc định để phân phát hầu hết các yêu cầu và sử dụng tín hiệu tuỳ chỉnh để sử dụng mô hình thử nghiệm nhằm phản hồi các yêu cầu của ứng dụng kiểm thử.

Một tham số có thể có nhiều giá trị có điều kiện sử dụng các điều kiện khác nhau và các tham số có thể chia sẻ các điều kiện trong một dự án. Trong thẻ Thông số của bảng điều khiển Firebase, bạn có thể xem tỷ lệ phần trăm tìm nạp cho từng giá trị có điều kiện của thông số. Chỉ số này cho biết tỷ lệ phần trăm số yêu cầu trong 24 giờ qua đã nhận được từng giá trị.

Mức độ ưu tiên của giá trị tham số

Một thông số có thể có một số giá trị có điều kiện liên kết với nó. Các quy tắc sau đây xác định giá trị nào được tìm nạp qua mẫu Remote Config và giá trị nào được dùng trong một phiên bản ứng dụng nhất định tại một thời điểm cụ thể:

  1. Trước tiên, giá trị có điều kiện được áp dụng cho mọi điều kiện đánh giá thành true cho một yêu cầu cụ thể của ứng dụng. Nếu nhiều điều kiện đánh giá là true, thì điều kiện đầu tiên (ở trên cùng) hiển thị trong giao diện người dùng bảng điều khiển Firebase sẽ được ưu tiên và các giá trị có điều kiện liên kết với điều kiện đó sẽ được cung cấp khi ứng dụng tìm nạp giá trị từ phần phụ trợ. Bạn có thể thay đổi mức độ ưu tiên của các điều kiện bằng cách kéo và thả các điều kiện trong thẻ Conditions (Điều kiện).

  2. Nếu không có giá trị có điều kiện nào có điều kiện đánh giá là true, thì giá trị mặc định của Remote Config sẽ được cung cấp khi ứng dụng tìm nạp các giá trị từ phần phụ trợ. Nếu một tham số không tồn tại trong phần phụ trợ hoặc nếu giá trị mặc định được đặt là Sử dụng giá trị mặc định trong ứng dụng, thì sẽ không có giá trị nào được cung cấp cho tham số đó khi ứng dụng tìm nạp các giá trị.

Trong ứng dụng, các giá trị tham số được các phương thức get trả về theo danh sách mức độ ưu tiên sau

  1. Nếu một giá trị được tìm nạp từ phần phụ trợ rồi kích hoạt, thì ứng dụng sẽ sử dụng giá trị được tìm nạp. Giá trị thông số đã kích hoạt là cố định.
  2. Nếu không tìm nạp được giá trị nào từ phần phụ trợ hoặc nếu các giá trị được tìm nạp từ phần phụ trợ Remote Config chưa được kích hoạt, thì ứng dụng sẽ sử dụng giá trị mặc định trong ứng dụng.

    Để biết thêm thông tin về cách lấy và đặt giá trị mặc định, hãy xem phần Tải giá trị mặc định của mẫu Remote Config xuống.

  3. Nếu bạn chưa đặt giá trị mặc định trong ứng dụng, thì ứng dụng sẽ sử dụng giá trị loại tĩnh (chẳng hạn như 0 cho intfalse cho boolean).

Hình ảnh này tóm tắt cách các giá trị tham số được ưu tiên trong phần phụ trợ Remote Config và trong ứng dụng của bạn:

Biểu đồ minh hoạ quy trình được mô tả theo các danh sách được sắp xếp theo thứ tự ở trên

Loại dữ liệu giá trị tham số

Remote Config cho phép bạn chọn một loại dữ liệu cho mỗi tham số và xác thực tất cả giá trị Remote Config theo loại đó trước khi cập nhật mẫu. Loại dữ liệu được lưu trữ và trả về trên yêu cầu getRemoteConfig.

Các loại dữ liệu được hỗ trợ là:

  • String
  • Boolean
  • Number
  • JSON

Trong giao diện người dùng bảng điều khiển Firebase, bạn có thể chọn loại dữ liệu trong trình đơn thả xuống bên cạnh khoá thông số. Trong API REST, bạn có thể đặt các loại bằng cách sử dụng trường value_type trong đối tượng tham số.

Nhóm thông số

Remote Config cho phép bạn nhóm các tham số lại với nhau để có giao diện người dùng được sắp xếp hợp lý hơn và nâng cao khả năng hữu dụng.

Ví dụ: giả sử bạn cần bật hoặc tắt 3 loại xác thực khác nhau trong khi triển khai một tính năng đăng nhập mới. Với Remote Config, bạn có thể tạo ba tham số để bật các loại bạn muốn, sau đó sắp xếp các tham số đó trong một nhóm có tên là "Đăng nhập mới" mà không cần thêm tiền tố hoặc sắp xếp đặc biệt.

Bạn có thể tạo các nhóm thông số bằng bảng điều khiển Firebase hoặc API REST Remote Config. Mỗi nhóm tham số bạn tạo sẽ có một tên riêng trong mẫu Remote Config. Khi tạo nhóm tham số, hãy lưu ý:

  • Bạn chỉ có thể đưa các thông số vào một nhóm bất cứ lúc nào và khoá thông số vẫn phải là duy nhất trên tất cả các tham số.
  • Tên nhóm thông số được giới hạn trong 256 ký tự.
  • Nếu bạn sử dụng cả API REST và bảng điều khiển Firebase, hãy đảm bảo rằng mọi logic của API REST đều được cập nhật để xử lý các nhóm thông số khi xuất bản.

Tạo hoặc sửa đổi nhóm thông số bằng bảng điều khiển Firebase

Bạn có thể nhóm các tham số trong thẻ Parameters (Thông số) của bảng điều khiển Firebase. Cách tạo hoặc sửa đổi nhóm:

  1. Chọn Quản lý nhóm.
  2. Đánh dấu vào hộp đánh dấu cho các tham số bạn muốn thêm rồi chọn Chuyển sang nhóm.
  3. Chọn một nhóm hiện có hoặc tạo một nhóm mới bằng cách nhập tên và nội dung mô tả, rồi chọn Tạo nhóm mới. Sau khi lưu một nhóm, bạn có thể xuất bản nhóm đó bằng nút Xuất bản các thay đổi.

Loại quy tắc điều kiện

Các loại quy tắc sau đây được hỗ trợ trong bảng điều khiển Firebase. Các tính năng tương đương có trong API REST Remote Config, như được nêu chi tiết trong tài liệu tham khảo về biểu thức có điều kiện.

Loại quy tắc Toán tử (Các) giá trị Lưu ý
Ứng dụng == Chọn trong danh sách Mã ứng dụng của các ứng dụng liên kết với dự án Firebase của bạn. Khi thêm một ứng dụng vào Firebase, bạn sẽ nhập mã nhận dạng gói hoặc tên gói Android để xác định một thuộc tính hiển thị dưới dạng Mã ứng dụng trong các quy tắc Remote Config.

Sử dụng thuộc tính này như sau:
  • Đối với các nền tảng của Apple: Sử dụng CFBundleIdentifier của ứng dụng. Bạn có thể tìm thấy Mã nhận dạng gói trong thẻ Chung cho mục tiêu chính của ứng dụng trong Xcode.
  • Đối với Android: Sử dụng applicationId của ứng dụng. Bạn có thể tìm thấy applicationId trong tệp build.gradle ở cấp ứng dụng.
Phiên bản ứng dụng Đối với giá trị chuỗi:
khớp chính xác,
chứa,
không chứa,
chứa biểu thức chính quy

Đối với giá trị số:
<, <=, =, !=, >, >=

Chỉ định(các) phiên bản ứng dụng mà bạn muốn nhắm đến.

Trước khi sử dụng quy tắc này, bạn phải sử dụng quy tắc Mã ứng dụng để chọn một ứng dụng Android/Apple được liên kết với dự án Firebase của bạn.

Đối với các nền tảng của Apple: Sử dụng CFBundleShortVersionString của ứng dụng.

Lưu ý: Hãy đảm bảo ứng dụng Apple của bạn đang sử dụng SDK nền tảng Firebase của Apple phiên bản 6.24.0 trở lên, vì CFBundleShortVersionString không được gửi trong các phiên bản cũ (xem ghi chú phát hành).

Đối với Android: Sử dụng versionName của ứng dụng.

Thông tin so sánh chuỗi cho quy tắc này có phân biệt chữ hoa chữ thường. Khi sử dụng toán tử khớp chính xác, chứa, không chứa hoặc chứa biểu thức chính quy, bạn có thể chọn nhiều giá trị.

Khi sử dụng toán tử contains regex (chứa biểu thức chính quy), bạn có thể tạo biểu thức chính quy ở định dạng RE2. Biểu thức chính quy của bạn có thể khớp với tất cả hoặc một phần của chuỗi phiên bản mục tiêu. Bạn cũng có thể sử dụng các neo ^$ để khớp với phần đầu, phần cuối hoặc toàn bộ một chuỗi mục tiêu.

Số bản dựng Đối với giá trị chuỗi:
khớp chính xác,
chứa,
không chứa,
biểu thức chính quy

Đối với giá trị số:
=, ≠, >, ≥, <, ≤

Chỉ định(các) bản dựng của ứng dụng mà bạn muốn nhắm đến.

Trước khi sử dụng quy tắc này, bạn phải sử dụng quy tắc Mã ứng dụng để chọn một ứng dụng Apple hoặc Android liên kết với dự án Firebase của bạn.

Toán tử này chỉ dành cho các ứng dụng của Apple và Android. Giá trị này tương ứng với CFBundleVersion của ứng dụng dành cho Apple và versionCode dành cho Android. Việc so sánh chuỗi cho quy tắc này sẽ phân biệt chữ hoa chữ thường.

Khi sử dụng toán tử khớp chính xác, chứa, không chứa hoặc chứa biểu thức chính quy, bạn có thể chọn nhiều giá trị.

Khi sử dụng toán tử chứa biểu thức chính quy, bạn có thể tạo biểu thức chính quy ở định dạng RE2. Biểu thức chính quy của bạn có thể khớp với tất cả hoặc một phần của chuỗi phiên bản mục tiêu. Bạn cũng có thể sử dụng các neo ^$ để khớp với phần đầu, phần cuối hoặc toàn bộ một chuỗi mục tiêu.

Nền tảng == iOS
Android
Web
 
Hệ điều hành ==

Chỉ định(các) hệ điều hành cần nhắm đến.

Trước khi sử dụng quy tắc này, bạn phải sử dụng quy tắc Mã ứng dụng để chọn một Ứng dụng web được liên kết với dự án Firebase của bạn.

Quy tắc này sẽ đánh giá thành true cho một thực thể ứng dụng Web nhất định nếu hệ điều hành và phiên bản của hệ điều hành đó khớp với một giá trị mục tiêu trong danh sách đã chỉ định.
Trình duyệt ==

Chỉ định(các) trình duyệt cần nhắm mục tiêu.

Trước khi sử dụng quy tắc này, bạn phải sử dụng quy tắc Mã ứng dụng để chọn một Ứng dụng web được liên kết với dự án Firebase của bạn.

Quy tắc này đánh giá thành true cho một thực thể ứng dụng Web nhất định nếu trình duyệt và phiên bản của trình duyệt khớp với một giá trị mục tiêu trong danh sách đã chỉ định.
Danh mục thiết bị là, không phải là di động Quy tắc này đánh giá xem thiết bị truy cập vào ứng dụng web của bạn là thiết bị di động hay không phải thiết bị di động (máy tính hoặc bảng điều khiển). Loại quy tắc này chỉ áp dụng cho ứng dụng web.
Ngôn ngữ nằm trong Chọn một hoặc nhiều ngôn ngữ. Quy tắc này sẽ đánh giá thành true cho một thực thể ứng dụng nhất định nếu thực thể ứng dụng đó được cài đặt trên một thiết bị sử dụng một trong các ngôn ngữ được liệt kê.
Quốc gia/Vùng nằm trong Chọn một hoặc nhiều khu vực hoặc quốc gia. Quy tắc này đánh giá thành true cho một thực thể ứng dụng nhất định nếu thực thể đó nằm trong bất kỳ khu vực hoặc quốc gia nào được liệt kê. Mã quốc gia của thiết bị được xác định bằng địa chỉ IP của thiết bị trong yêu cầu hoặc mã quốc gia do Firebase Analytics xác định (nếu dữ liệu Analytics được chia sẻ với Firebase).
(Các) đối tượng người dùng Có ít nhất một Chọn một hoặc nhiều đối tượng từ danh sách Google Analytics đối tượng mà bạn đã thiết lập cho dự án của mình.

Quy tắc này yêu cầu quy tắc Mã ứng dụng để chọn một ứng dụng được liên kết với dự án Firebase của bạn.

Lưu ý: Vì nhiều đối tượng Analytics được xác định bằng các sự kiện hoặc thuộc tính người dùng, có thể dựa trên hành động của người dùng ứng dụng, nên có thể mất một khoảng thời gian để quy tắc Người dùng trong đối tượng có hiệu lực đối với một thực thể ứng dụng nhất định.

Thuộc tính người dùng Đối với giá trị chuỗi:
chứa,
không chứa,
khớp chính xác,
chứa biểu thức chính quy

Đối với giá trị số:
=, ≠, >, ≥, <, ≤

Lưu ý: Trên ứng dụng, bạn chỉ có thể đặt giá trị chuỗi cho các thuộc tính người dùng. Đối với các điều kiện sử dụng toán tử số, Remote Config sẽ chuyển đổi giá trị của thuộc tính người dùng tương ứng thành số nguyên/số thực.
Chọn trong danh sách các thuộc tính người dùng Google Analytics có sẵn. Để tìm hiểu cách sử dụng thuộc tính người dùng nhằm tuỳ chỉnh ứng dụng cho các phân khúc rất cụ thể trong cơ sở người dùng, hãy xem phần Remote Config và thuộc tính người dùng.

Để tìm hiểu thêm về thuộc tính người dùng, hãy xem các hướng dẫn sau:

Khi sử dụng toán tử khớp chính xác, chứa, không chứa hoặc chứa biểu thức chính quy, bạn có thể chọn nhiều giá trị.

Khi sử dụng toán tử chứa biểu thức chính quy, bạn có thể tạo biểu thức chính quy ở định dạng RE2. Biểu thức chính quy của bạn có thể khớp với tất cả hoặc một phần của chuỗi phiên bản mục tiêu. Bạn cũng có thể sử dụng neo ^$ để khớp với đầu, cuối hoặc toàn bộ chuỗi mục tiêu.

Lưu ý: Bạn không thể sử dụng Thuộc tính người dùng được thu thập tự động khi tạo các điều kiện Remote Config.
Người dùng theo tỷ lệ phần trăm ngẫu nhiên Thanh trượt (trong bảng điều khiển của Firebase. API REST sử dụng các toán tử <=, >between). 0-100

Sử dụng trường này để áp dụng thay đổi cho một mẫu ngẫu nhiên của các phiên bản ứng dụng (với kích thước mẫu nhỏ nhất là 0,0001%), sử dụng tiện ích thanh trượt để phân đoạn người dùng (phiên bản ứng dụng) được xáo trộn ngẫu nhiên thành các nhóm.

Mỗi thực thể ứng dụng được liên kết liên tục với một số nguyên hoặc số thập phân ngẫu nhiên, theo một mã khởi tạo được xác định trong dự án đó.

Một quy tắc sẽ sử dụng khoá mặc định (hiển thị dưới dạng Chỉnh sửa giá trị ban đầu trong bảng điều khiển Firebase) trừ phi bạn sửa đổi giá trị ban đầu. Bạn có thể trả về một quy tắc để sử dụng khoá mặc định bằng cách xoá trường Seed (Giá trị khởi tạo).

Để liên tục giải quyết cùng một phiên bản ứng dụng trong các phạm vi tỷ lệ phần trăm nhất định, hãy sử dụng cùng một giá trị hạt trên các điều kiện. Hoặc chọn một nhóm thực thể ứng dụng mới được chỉ định ngẫu nhiên cho một phạm vi tỷ lệ phần trăm nhất định bằng cách chỉ định một giá trị hạt mới.

Ví dụ: để tạo hai điều kiện liên quan, mỗi điều kiện áp dụng cho 5% người dùng không trùng lặp của một ứng dụng, bạn có thể định cấu hình một điều kiện để khớp với tỷ lệ phần trăm từ 0% đến 5% và định cấu hình một điều kiện khác để khớp với phạm vi từ 5% đến 10%. Để cho phép một số người dùng xuất hiện ngẫu nhiên trong cả hai nhóm, hãy sử dụng các giá trị gốc khác nhau cho các quy tắc trong mỗi điều kiện.

Phân đoạn được nhập nằm trong Chọn một hoặc nhiều phân khúc đã nhập. Quy tắc này yêu cầu bạn phải thiết lập phân khúc đã nhập tuỳ chỉnh.
Ngày/giờ Trước, Sau Ngày và giờ được chỉ định, theo múi giờ của thiết bị hoặc một múi giờ cụ thể, chẳng hạn như "(GMT+11) Giờ Sydney". So sánh thời gian hiện tại với thời gian tìm nạp thiết bị.
Mở lần đầu Trước, Sau Ngày và giờ được chỉ định, theo múi giờ được chỉ định.

So khớp những người dùng lần đầu mở ứng dụng được nhắm đến trong phạm vi thời gian được chỉ định.

Cần có các SDK sau đây:

  • SDK Firebase cho Google Analytics
  • SDK nền tảng Apple phiên bản 9.0.0 trở lên hoặc SDK Android phiên bản 21.1.1 trở lên (Firebase BoM phiên bản 30.3.0 trở lên)
Mã cài đặt nằm trong Chỉ định một hoặc nhiều Mã cài đặt (tối đa 50 mã) để nhắm mục tiêu. Quy tắc này sẽ đánh giá thành true cho một lượt cài đặt nhất định nếu mã nhận dạng của lượt cài đặt đó nằm trong danh sách giá trị được phân tách bằng dấu phẩy.

Để tìm hiểu cách lấy mã cài đặt, hãy xem phần Truy xuất giá trị nhận dạng ứng dụng.
Người dùng tồn tại (không có toán tử) Nhắm đến tất cả người dùng của tất cả ứng dụng trong dự án hiện tại.

Hãy sử dụng quy tắc điều kiện này để khớp với tất cả người dùng trong dự án, bất kể ứng dụng hoặc nền tảng.

Thông số và điều kiện tìm kiếm

Bạn có thể tìm kiếm khoá tham số, giá trị tham số và điều kiện của dự án trong bảng điều khiển Firebase bằng cách sử dụng hộp tìm kiếm ở đầu thẻ Parameters (Tham số) Remote Config.

Giới hạn về thông số và điều kiện

Trong một dự án Firebase, bạn có thể có tối đa 2.000 tham số và tối đa 500 điều kiện. Khoá thông số có thể dài tối đa 256 ký tự, phải bắt đầu bằng dấu gạch dưới hoặc ký tự chữ cái tiếng Anh (A-Z, a-z) và cũng có thể bao gồm chữ số. Tổng chiều dài của chuỗi giá trị tham số trong một dự án không được vượt quá 1.000.000 ký tự.

Xem các thay đổi đối với thông số và điều kiện

Bạn có thể xem các thay đổi mới nhất đối với mẫu Remote Config trong bảng điều khiển Firebase. Đối với từng thông số và điều kiện riêng lẻ, bạn có thể:

  • Xem tên của người dùng đã sửa đổi thông số hoặc điều kiện gần đây nhất.

  • Nếu thay đổi xảy ra trong cùng một ngày, hãy xem số phút hoặc giờ đã trôi qua kể từ khi thay đổi được xuất bản cho mẫu Remote Config đang hoạt động.

  • Nếu thay đổi đã xảy ra trước đó một hoặc nhiều ngày, hãy xem ngày phát hành thay đổi đó cho mẫu Remote Config đang hoạt động.

Nhật ký thay đổi cho tham số

Trên trang Remote Config Parameters (Thông số), cột Last published (Lần phát hành gần đây nhất) cho biết người dùng gần đây nhất đã sửa đổi từng thông số và ngày phát hành gần đây nhất của thay đổi:

  • Để xem siêu dữ liệu thay đổi cho các tham số được nhóm, hãy mở rộng nhóm tham số.

  • Để sắp xếp theo thứ tự tăng dần hoặc giảm dần theo ngày xuất bản, hãy nhấp vào nhãn cột Xuất bản lần gần đây nhất.

Nhật ký thay đổi về các điều kiện

Trên trang Remote Config Điều kiện, bạn có thể thấy người dùng gần đây nhất đã sửa đổi điều kiện và ngày họ sửa đổi điều kiện đó bên cạnh Lần sửa đổi gần đây nhất trong mỗi điều kiện.

Các bước tiếp theo

Để định cấu hình dự án và ứng dụng Firebase để sử dụng Remote Config, hãy xem phần Bắt đầu sử dụng Remote Config của Firebase.