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++. Thông số và giá trị Remote Config từ mẫu dành riêng cho máy chủ được phân phát cho các phương thức triển khai Remote Config (bao gồm Cloud Run và Cloud Functions) sử dụng Bảng điều khiển dành cho quản trị viên Firebase SDK Node.js phiên bản 12.1.0 trở lên.

Khi sử dụng bảng điều khiển Firebase hoặc Remote Config API phụ trợ, bạn xác định một hoặc nhiều thông số (khoá-giá trị) cặp) và cung cấp giá trị mặc định trong ứng dụng cho các thông 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.

Khi 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 thông số, cũng như các giá trị có điều kiện 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 khi cần. Bạn có thể thực hiện 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ả rộng rãi hơn trong Quản lý Remote Config phiên bản mẫu.

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

Điều kiện được dùng để nhắm đến một nhóm thực thể ứng dụng. Điều kiện bao gồm một hoặc nhiều quy tắc, tất cả các quy tắc này 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ị của quy tắc là không xác định (ví dụ: khi không có giá trị nào), quy tắc đó sẽ đánh giá là false.

Ví dụ: bạn có thể tạo một tham số xác định một ngôn ngữ lớn tên mô hình (LLM) và chuỗi phiên bản, đồng thời phân phát các câu trả lời từ nhiều các mô hình dựa trên tín hiệu tuỳ chỉnh quy tắc. 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 thông số có thể có nhiều điều kiện các giá trị sử dụng các điều kiện khác nhau và các thông số có thể chia sẻ đ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 yêu cầu trong 24 giờ qua đã nhận được từng giá trị.

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

Một thông số có thể liên kết với một số giá trị có điều kiện. Các quy tắc sau đây xác định giá trị nào được tìm nạp từ mẫu Remote Config và giá trị nào được sử dụng trong một thực thể ứ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 được đánh giá thành true, điều kiện đầu tiên (hàng đầu) 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 các giá trị trong 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ả điều kiện trong thẻ Đ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á thành 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 thành 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 giá trị.

Trong ứng dụng của bạn, các phương thức get trả về giá trị tham số theo danh sách ưu tiên sau đây

  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ị đã tìm nạp. Các giá trị thông số đã kích hoạt sẽ không thay đổi.
  2. Nếu không tìm nạp giá trị nào từ phần phụ trợ hoặc nếu giá trị được tìm nạp từ Phần phụ trợ Remote Config chưa được kích hoạt, ứng dụng sẽ dùng phần phụ trợ trong ứng dụng giá trị mặc định.

    Để 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, ứng dụng sẽ dùng kiểu 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ị thông 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ả bằng các danh sách đã sắp xếp ở 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.

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

  • 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 từ bên cạnh khoá thông số. Trong API REST, bạn có thể đặt 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 thông số lại với nhau để sắp xếp gọn gàng hơn giao diện người dùng 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 tính năng đăng nhập mới. Với Remote Config, bạn có thể tạo ba thông số để bật các loại mong muốn, sau đó sắp xếp chúng theo nhóm có tên "Thông tin đăng nhập mới" mà không cần thêm tiền tố hoặc cách 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 thông số bạn tạo có một tên riêng biệt mẫu Remote Config của bạn. Khi tạo nhóm tham số, hãy lưu ý:

  • Tại bất kỳ thời điểm nào, các tham số chỉ có thể nằm trong một nhóm và khoá tham 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 API REST đều được cập nhật để xử lý các nhóm tham số khi phát hành.

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

Bạn có thể nhóm các tham số trong thẻ Parameters (Tham 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. Chọn hộp đánh dấu cho những thông số mà bạn muốn thêm rồi chọn Chuyển vào nhóm.
  3. Chọn một nhóm hiện có hoặc tạo nhóm mới bằng cách nhập tên và 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 cách sử dụng Nút Xuất bản các thay đổi.

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

Bảng điều khiển Firebase hỗ trợ các loại quy tắc sau. 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 (Các) nhà cung cấp dịch vụ (Các) Giá trị Lưu ý
Ứng dụng == Chọn trong danh sách Mã ứng dụng cho các ứng dụng được 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 Bundle Identifier (Mã nhận dạng gói) trong thẻ General (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 ở cấp ứng dụng build.gradle.
Phiên bản ứng dụng Đối với các 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: 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 Apple của Firebase phiên bản 6.24.0 trở lên, vì CFBundleShortVersionString không được gửi trong phiên bản cũ hơn (xem ghi chú phát hành).

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

Việc 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 neo ^$ để khớp với đầu, cuối hoặc toàn bộ 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 Apple hoặc Ứng dụng Android được liên kết với dự án Firebase của bạn.

Toán tử này chỉ dành cho ứng dụng Apple và Android. Nó tương ứng với CFBundleVersion cho Apple và versionCode cho Android. Các phép so sánh chuỗi cho quy tắc này phân biệt chữ hoa chữ thường.

Khi sử dụng kết quả khớp chính xác, chứa, không chứa hoặc chứa toán tử biểu thức chính quy, thì 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 trong RE2 . Biểu thức chính quy có thể khớp với toàn bộ hoặc một phần của 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ộ 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á là true cho một phiên bản ứng dụng web cụ thể nếu trình duyệt và phiên bản của trình duyệt khớp với giá trị mục tiêu trong danh sách được 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 máy chơi trò chơi). Loại quy tắc này chỉ áp dụng cho web của chúng tôi.
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 hay quốc gia. Quy tắc này đánh giá là true cho một phiên bản ứng dụng cụ thể nếu doanh nghiệp ở 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 Bao gồm ít nhất một Chọn một hoặc nhiều đối tượng trong danh sách đối tượng Google Analytics mà bạn đã thiết lập cho dự án.

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 theo sự kiện hoặc thuộc tính người dùng, có thể dựa vào hành động của người dùng ứng dụng, có thể mất khoảng thời gian để quy tắc Người dùng trong đối tượng có hiệu lực cho ứng dụng cụ thể thực thể.

Thuộc tính người dùng Đối với các 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 người dùng các thuộc tính. Đố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 Google Analytics người dùng hiện có các thuộc tính. Để 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 những 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 các neo ^$ để khớp với phần đầu, phần cuối hoặc toàn bộ chuỗi mục tiêu.

Lưu ý: Thuộc tính người dùng được thu thập tự động không khả dụng khi tạo điều kiện Remote Config.
Số 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ác phiên bản ứng dụng (với kích thước mẫu nhỏ là 0,0001%), sử dụng tiện ích thanh trượt để phân đoạn người dùng được xáo trộn ngẫu nhiên (phiên bản ứng dụng) thành nhóm.

Mỗi phiên bản ứng dụng được liên tục liên kết với một số nguyên hoặc phân số ngẫu nhiên, theo một seed (gốc) đượ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).

Để xử lý nhất quán các phiên bản ứng dụng trong phạm vi tỷ lệ phần trăm nhất định, hãy sử dụng cùng một giá trị gốc giá trị theo điều kiện. Hoặc chọn một nhóm phiên bản ứng dụng mới được chỉ định ngẫu nhiên cho một đối tượng cụ thể phạm vi phần trăm bằng cách chỉ định một số ngẫu nhiên 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 ngẫu nhiên xuất hiện trong cả hai nhóm, hãy sử dụng các giá trị gốc khác nhau cho 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 thiết lập chế độ cài đặt tuỳ chỉnh phân khúc đã nhập.
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ụ thể, theo múi giờ đã chỉ định.

So khớp những người dùng lần đầu mở ứng dụng được nhắm mục tiêu trong thuộc tính phạm vi thời gian.

Yêu cầu các SDK sau:

  • Firebase SDK 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) để nhắm mục tiêu. Quy tắc này đánh giá là true cho một lượt cài đặt cụ thể nếu mã 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 bạn có thể nhận ID cài đặt, hãy xem Truy xuất giá trị nhận dạng ứng dụng khách.
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 mọi ứng dụng trong dự án hiện tại.

Sử dụng quy tắc điều kiện này để so khớp 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 các khoá thông số, giá trị thông số và điều kiện của dự án từ bảng điều khiển Firebase bằng cách sử dụng hộp tìm kiếm ở đầu thẻ Remote Config Thông số.

Các 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 độ dài của các chuỗi giá trị thông 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. Để 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 sự thay đổi xảy ra trong cùng một ngày, hãy xem số phút hoặc số giờ đã trôi qua kể từ khi thay đổi được xuất bản lên Mẫu Remote Config.

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

Nhật ký thay đổi của các thông 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 cho các điều kiện

Trên trang Remote Config Điều kiện, bạn có thể xem 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 nhằm sử dụng Remote Config, hãy xem Bắt đầu sử dụng Firebase Remote Config.