Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

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

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.

Khi sử dụng bảng điều khiển Firebase hoặc API phụ trợ Cấu hình từ xa , bạn xác định một hoặc nhiều thông số (cặp khóa-giá trị) 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ị thông số phía máy chủ. Khóa 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 của mình.

Sử dụng bảng điều khiển Firebase, SDK quản trị hoặc API REST cấu hình từ xa , bạn có thể tạo các giá trị mặc định mới cho các thông số của mình, cũng như các giá trị có điều kiện được sử dụng để nhắm mục tiêu các nhóm phiên bản ứng dụng. Mỗi lần bạn cập nhật cấu hình của mình trong bảng điều khiển Firebase, Firebase sẽ tạo và xuất bản phiên bản mới của mẫu Cấu hình từ xa của bạn. 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 thiết. Các hoạt động này có sẵn cho bạn thông qua bảng điều khiển Firebase, SDK quản trị Firebase và API REST và được mô tả kỹ hơn trong phiên bản mẫu Quản lý cấu hình từ xa .

Hướng dẫn này giải thích các tham số, điều kiện, quy tắc, giá trị điều kiện và cách các giá trị tham số khác nhau được ưu tiên trên Máy chủ cấu hình từ xa và trong ứng dụng của bạn. Nó cũng cung cấp chi tiết về các loại quy tắc được sử 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 sử dụng để nhắm mục tiêu một nhóm các phiên bản ứng dụng. Các điều kiện được tạo thành từ một hoặc nhiều quy tắc mà tất cả đều phải đánh giá là true để điều kiện được đánh giá là true đối với một phiên bản ứng dụng nhất định. Nếu giá trị cho quy tắc không được xác định (ví dụ: khi không có giá trị nào), quy tắc đó sẽ đánh giá thành false .

Ví dụ: tham số xác định trang giật gân của ứng dụng có thể hiển thị các hình ảnh khác nhau dựa trên loại hệ điều hành bằng cách sử dụng quy tắc đơn giản if device_os = Android :

Ảnh chụp màn hình của thông số 'splash_page' trong bảng điều khiển Firebase hiển thị giá trị mặc định của nó đối với iOS và giá trị có điều kiện đối với Android

Hoặc, điều kiện thời gian có thể được sử dụng để kiểm soát thời điểm ứng dụng của bạn hiển thị các mặt hàng khuyến mại đặc biệt.

Một tham số có thể có nhiều giá trị đ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 tab Tham số của bảng điều khiển Firebase, bạn có thể xem phần trăm tìm nạp cho các giá trị có điều kiện của từng thông số. Chỉ số này cho biết phần trăm yêu cầu trong 24 giờ qua đã nhận được từng giá trị.

Ưu tiên giá trị tham số

Một tham số có thể có một số giá trị điều kiện được liên kết với nó. Các quy tắc sau xác định giá trị nào được tìm nạp từ Máy chủ cấu hình từ xa và giá trị nào được sử 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ể:

Giá trị thông số phía máy chủ được tìm nạp theo danh sách ưu tiên sau

  1. Đầu tiên, các giá trị có điều kiện được áp dụng, nếu có các điều kiện được đánh giá là true cho một phiên bản ứng dụng nhất định. Nếu nhiều điều kiện được đá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 được 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ị từ chương trình 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 tab Điều kiện .

  2. Nếu không có giá trị điều kiện nào với các điều kiện đánh giá là true , thì giá trị mặc định phía máy chủ sẽ được cung cấp khi ứng dụng tìm nạp các giá trị từ chương trình 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 mặc định trong ứng dụng , thì không có giá trị nào được cung cấp cho tham số đó khi một ứng dụng tìm nạp các giá trị.

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

  1. Nếu một giá trị được tìm nạp từ chương trình phụ trợ và sau đó được kích hoạt, ứng dụng sẽ sử dụng giá trị được tìm nạp. Các giá trị tham số được kích hoạt là liên tục.
  2. Nếu không có giá trị nào được tìm nạp từ chương trình phụ trợ hoặc nếu các giá trị được tìm nạp từ chương trình phụ trợ Cấu hình từ xa 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 các giá trị mặc định, hãy xem Tải xuống các giá trị mặc định của mẫu Cấu hình Từ xa .

  3. Nếu không có giá trị mặc định trong ứng dụng nào được đặt, ứng dụng sẽ sử dụng giá trị 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ị tham số được ưu tiên trong phần phụ trợ Cấu hình từ xa và trong ứng dụng của bạn:

Sơ đồ hiển thị luồng được mô tả bởi các danh sách có thứ tự ở trên

Các kiểu dữ liệu giá trị tham số

Cấu hình từ xa cho phép bạn chọn kiểu dữ liệu cho mỗi tham số và xác thực tất cả các giá trị phía máy chủ so với kiểu đó trước khi cập nhật mẫu. Kiểu dữ liệu được lưu trữ và trả về theo yêu cầu getRemoteConfig .

Các loại hiện được hỗ trợ là:

  • String
  • Boolean
  • Number
  • JSON

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

Các nhóm tham số

Cấu hình từ xa cho phép bạn nhóm các thông số lại với nhau để có giao diện người dùng và mô hình tinh thần được tổ chức tốt hơn.

Ví dụ: giả sử bạn cần bật hoặc tắt ba 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 Cấu hình từ xa, bạn có thể tạo ba tham số để kích hoạt các loại như mong muốn, sau đó sắp xếp chúng trong một nhóm có tên "Đă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 nhóm thông số bằng bảng điều khiển Firebase hoặc API REST cấu hình từ xa. Mỗi nhóm tham số bạn tạo có một tên duy nhất trong mẫu Cấu hình từ xa của bạn. Khi tạo nhóm tham số, hãy lưu ý:

  • Các tham số chỉ có thể được đưa vào một nhóm bất kỳ lúc nào và khóa tham số vẫn phải là duy nhất trên tất cả các tham số.
  • Tên nhóm tham 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 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 thông số trong tab Thông số của bảng điều khiển Firebase. Để tạo hoặc sửa đổi một nhóm:

  1. Chọn Quản lý nhóm .
  2. Chọn hộp kiểm cho các tham số bạn muốn thêm và chọn Di chuyển đến 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à mô tả rồi chọn Tạo nhóm mới . Sau khi bạn lưu một nhóm, nhóm có thể được xuất bản bằng cách sử dụng nút Xuất bản các thay đổi .

Tạo nhóm theo chương trình

API REST cấu hình từ xa cung cấp một cách tự động để tạo và xuất bản các nhóm tham số. Giả sử bạn đã quen với REST và được thiết lập để ủy quyền các yêu cầu tới API, bạn có thể thực hiện các bước sau để quản lý nhóm theo chương trình:

  1. Lấy mẫu hiện tại
  2. Thêm các đối tượng JSON để đại diện cho các nhóm thông số của bạn
  3. Xuất bản các nhóm tham số bằng cách sử dụng yêu cầu HTTP PUT.

Đối tượng parameterGroups nhóm chứa các khóa nhóm, với mô tả lồng vào nhau và danh sách các tham số được nhóm. Lưu ý rằng mỗi khóa nhóm phải là duy nhất trên toàn cầu.

Ví dụ: đây là một đoạn trích từ bản sửa đổi mẫu thêm nhóm tham số "menu mới" với một tham số, pumpkin_spice_season :

{
  "parameters": {},
  "version": {
    "versionNumber": "1",

    …


  },
  "parameterGroups": {
    "new menu": {
      "description": "New Menu",
      "parameters": {
        "pumpkin_spice_season": {
          "defaultValue": {
            "value": "true"
          },
          "description": "Whether it's currently pumpkin spice season."
        }
      }
    }
  }
}

Các loại quy tắc điều kiện

Các loại quy tắc sau được hỗ trợ trong bảng điều khiển Firebase. Chức năng tương đương có sẵn trong API REST cấu hình từ xa, như được trình bày chi tiết trong tham chiếu biểu thức điều kiện .

Loại quy tắc (Các) nhà điều hành Giá trị Ghi chú
Ứng dụng == Chọn từ danh sách ID ứ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 ứng dụng vào Firebase, bạn nhập ID gói hoặc tên gói Android xác định thuộc tính được hiển thị dưới dạng ID ứng dụng trong quy tắc Cấu hình từ xa.

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 tab 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 của mình.
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,
biểu hiện thông thường

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

Chỉ định (các) phiên bản ứng dụng của bạ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 ID ứng dụng để chọn ứ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 ý: Đảm bảo ứng dụng Apple của bạn đang sử dụng SDK nền tảng Apple Firebase phiên bản 6.24.0 trở lên, vì CFBundleShortVersionString không được gửi trong các phiên bản trước đó (xem ghi chú phát hành ).

Đối với Android: Sử dụng Tên phiên bản của ứng dụng.

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

Khi sử dụng toán tử 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 đích. Bạn cũng có thể sử dụng các ký tự ^$ để khớp với phần đầu, phần cuối hoặc toàn bộ của một chuỗi mục tiêu.

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

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

Chỉ định (các) phiên bản ứng dụng của bạ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 ID ứng dụng để chọn ứng dụng Apple hoặc Android được liên kết với dự án Firebase của bạn.

Nhà điều hành này chỉ có sẵn cho các ứng dụng Apple và Android. Nó tương ứng với CFBundleVersion của ứng dụng dành cho Apple và Mã phiên bản dành cho Android. So sánh chuỗi cho quy tắc này phân biệt chữ hoa chữ thường.

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

Khi sử dụng toán tử 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 đích. Bạn cũng có thể sử dụng các ký tự ^$ để khớp với phần đầu, phần cuối hoặc toàn bộ của 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 để 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 ID ứ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 đối với một phiên bản ứng dụng Web nhất định nếu hệ điều hành và phiên bản của nó khớp với một giá trị đích trong danh sách được chỉ định.
Trình duyệt ==

Chỉ định (các) trình duyệt để 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 ID ứ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 đối với một phiên bản ứng dụng Web nhất định nếu trình duyệt và phiên bản của nó khớp với một giá trị đích trong danh sách được chỉ định.
Loại thiết bị không phải di động Quy tắc này đánh giá xem thiết bị truy cập ứ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 để bàn hoặc bảng điều khiển). Loại quy tắc này chỉ có sẵn cho các ứng dụng web.
Ngôn ngữ trong Chọn một hoặc nhiều ngôn ngữ. Quy tắc này đánh giá là true đối với một phiên bản ứng dụng nhất định nếu phiên bản ứng dụng đó được cài đặt trên thiết bị sử dụng một trong các ngôn ngữ được liệt kê.
Quốc gia / Khu vực trong Chọn một hoặc nhiều khu vực hoặc quốc gia. Quy tắc này đánh giá là true đối với một phiên bản ứng dụng nhất định nếu phiên bản đó ở 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 cách sử dụ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 từ danh sách các đối tượng Google Analytics 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 ID ứng dụng để chọn ứ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 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 phiên bản ứng dụng nhất định.

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,
biểu hiện thông thường

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

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

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

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

Khi sử dụng toán tử 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 đích. Bạn cũng có thể sử dụng các ký tự ^$ để khớp với phần đầu, phần cuối hoặc toàn bộ của một chuỗi mục tiêu.

Lưu ý: Các thuộc tính người dùng được thu thập tự động hiện không khả dụng khi tạo điều kiện Cấu hình từ xa.
Người dùng trong phân vị ngẫu nhiên <=,> 0-100

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

Mỗi phiên bản ứng dụng được liên tục ánh xạ tới một số nguyên hoặc số phân số ngẫu nhiên, theo một khóa được xác định trong dự án đó. Quy tắc sẽ sử dụng khóa mặc định (được hiển thị dưới dạng DEF trong bảng điều khiển Firebase) trừ khi bạn chọn hoặc tạo khóa khác. Bạn có thể trả lại một quy tắc để sử dụng khóa mặc định bằng cách xóa Người dùng ngẫu nhiên bằng cách sử dụng trường khóa này. Bạn có thể sử dụng một khóa duy nhất trên các quy tắc để giải quyết nhất quán các phiên bản ứng dụng giống nhau trong phạm vi tỷ lệ phần trăm nhất định. Hoặc, bạn có thể 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 phạm vi tỷ lệ phần trăm nhất định bằng cách tạo một khóa mới.

Ví dụ: để tạo hai điều kiện có liên quan, mỗi điều kiện áp dụng cho 5% người dùng ứng dụng không trùng lặp, bạn có thể có một điều kiện bao gồm quy tắc <= 5% và một điều kiện khác bao gồm cả quy tắc > 5%<= Quy tắc 10% . Để một số người dùng có thể xuất hiện ngẫu nhiên trong cả hai nhóm, hãy sử dụng các phím khác nhau cho các quy tắc trong từng điều kiện.

Phân đoạn đã nhập trong Chọn một hoặc nhiều phân đoạn đã nhập. Quy tắc này yêu cầu thiết lập các phân đoạn được nhập tùy chỉnh.
Ngày giờ Trước, sau Ngày và giờ được chỉ định, trong múi giờ của thiết bị hoặc múi giờ được chỉ định, 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ị.
ID cài đặt trong Chỉ định một hoặc nhiều ID cài đặt (tối đa 50) để nhắm mục tiêu. Quy tắc này đánh giá là true đối với một cài đặt nhất định nếu ID của 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 Lấy mã nhận dạng ứng dụng khách .

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

Bạn có thể tìm kiếm khóa tham số, giá trị tham 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 tab Tham số cấu hình từ xa.

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 2000 tham số và tối đa 500 điều kiện. Các khóa tham 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 (AZ, az) và cũng có thể bao gồm số. Tổng độ 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 các 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 Cấu hình từ xa của mình từ 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 lần cuối.

  • 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 lên mẫu Cấu hình từ xa đang hoạt động.

  • Nếu thay đổi đã xảy ra một hoặc nhiều ngày trước đây, hãy xem ngày xuất bản thay đổi lên mẫu Cấu hình Từ xa đang hoạt động.

Cập nhật thông số

Trên trang Thông số cấu hình từ xa, cột Được xuất bản lần cuối hiển thị người dùng cuối cùng đã sửa đổi từng thông số và ngày xuất bản cuối cùng cho thay đổi:

  • Để xem siêu dữ liệu thay đổi cho các thông số được nhóm, hãy mở rộng nhóm thông 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 Được xuất bản lần cuối .

Cập nhật tình trạng

Trên trang Điều kiện cấu hình từ xa, bạn có thể thấy người dùng cuối cùng đã sửa đổi điều kiện và ngày họ sửa đổi bên cạnh Sửa đổi lần cuối bên dưới mỗi điều kiện.

Bước tiếp theo

Để bắt đầu định cấu hình dự án Firebase của bạn, hãy xem Thiết lập dự án cấu hình từ xa Firebase .