Mẫu cấu hình từ xa và tạo phiên bản

Mẫu Cấu hình từ xa là tập hợp các thông số và điều kiện được định dạng JSON phía máy chủ mà bạn đã tạo cho dự án Firebase của mình. Bạn có thể sửa đổi và quản lý mẫu bằng bảng điều khiển Firebase, bảng điều khiển này hiển thị nội dung của mẫu ở định dạng đồ họa trong các tab Tham sốĐiều kiện . Bạn cũng có thể sử dụng các API phụ trợ Cấu hình từ xa hoặc Firebase CLI để sửa đổi và quản lý cấu hình của mình.

Đây là một ví dụ về tệp mẫu:

  {
    "conditions": [
      {
        "name": "ios",
        "expression": "device.os == 'ios'"
      }
    ],
    "parameters": {
      "welcome_message": {
        "defaultValue": {
          "value": "Welcome to this sample app"
        },
        "conditionalValues": {
          "ios": {
            "value": "Welcome to this sample iOS app"
          }
        }
      },
      "welcome_message_caps": {
        "defaultValue": {
          "value": "false"
        }
      },
      "header_text": {
        "defaultValue": {
          "useInAppDefault": true
        }
      }
    },
    "version": {
      "versionNumber": "28",
      "updateTime": "2020-05-14T18:39:38.994Z",
      "updateUser": {
        "email": "user@google.com"
      },
      "updateOrigin": "CONSOLE",
      "updateType": "INCREMENTAL_UPDATE"
    }
  }

Mỗi khi bạn cập nhật các tham số, Cấu hình từ xa sẽ tạo một mẫu Cấu hình từ xa có phiên bản mới và lưu trữ mẫu trước đó dưới dạng phiên bản mà bạn có thể truy xuất hoặc khôi phục lại nếu cần. Số phiên bản được tăng tuần tự từ giá trị ban đầu được lưu trữ bởi Cấu hình từ xa. Tất cả các mẫu đều bao gồm trường version như được hiển thị, chứa siêu dữ liệu về phiên bản cụ thể đó.

Với bảng điều khiển Firebase, Firebase CLI hoặc API phụ trợ Cấu hình từ xa, bạn có thể thực hiện các tác vụ quản lý phiên bản sau:

  • Liệt kê tất cả các phiên bản mẫu được lưu trữ
  • Truy xuất một phiên bản cụ thể
  • Quay lại một phiên bản cụ thể

Khi bạn quản lý các mẫu Cấu hình từ xa, hãy lưu ý đến ngưỡng hết hạn: Mẫu Cấu hình từ xa hiện hoạt đang được ứng dụng của bạn sử dụng không hết hạn; tuy nhiên, nếu nó được thay thế bằng một bản cập nhật, phiên bản trước đó sẽ chỉ được lưu trữ trong 90 ngày, sau đó nó sẽ hết hạn và không thể lấy lại được. Ngoài ra còn có tổng giới hạn là 300 phiên bản được lưu trữ. Nếu bạn muốn lưu trữ hoặc quay trở lại mẫu nằm ngoài các giới hạn đó, hãy lưu và lưu trữ mẫu theo cách thủ công.

Quản lý phiên bản mẫu cấu hình từ xa

Phần này mô tả cách quản lý các phiên bản của mẫu Cấu hình từ xa của bạn. Để biết thêm chi tiết về cách tạo, sửa đổi và lưu mẫu theo lập trình, hãy xem Sửa đổi cấu hình từ xa theo lập trình .

Liệt kê tất cả các phiên bản được lưu trữ của mẫu Cấu hình từ xa

Bạn có thể truy xuất danh sách tất cả các phiên bản được lưu trữ của mẫu Cấu hình Từ xa. Ví dụ:

Node.js

function listAllVersions() {
  admin.remoteConfig().listVersions()
    .then((listVersionsResult) => {
      console.log("Successfully fetched the list of versions");
      listVersionsResult.versions.forEach((version) => {
        console.log('version', JSON.stringify(version));
      });
    })
    .catch((error) => {
      console.log(error);
    });
}

Java

ListVersionsPage page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get();
while (page != null) {
  for (Version version : page.getValues()) {
    System.out.println("Version: " + version.getVersionNumber());
  }
  page = page.getNextPage();
}

// Iterate through all versions. This will still retrieve versions in batches.
page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get();
for (Version version : page.iterateAll()) {
  System.out.println("Version: " + version.getVersionNumber());
}

NGHỈ NGƠI

curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig:listVersions

Bảng điều khiển Firebase

Trong tab Tham số , chọn biểu tượng "đồng hồ" hiển thị ở trên cùng bên phải. Thao tác này sẽ mở trang Lịch sử thay đổi liệt kê tất cả các phiên bản mẫu được lưu trữ trong menu danh sách ở bên phải.

Thông tin chi tiết được hiển thị cho mỗi phiên bản được lưu trữ bao gồm thông tin về việc liệu các thay đổi bắt nguồn từ Bảng điều khiển, với API REST, từ quá trình khôi phục hay liệu chúng là các thay đổi gia tăng từ việc bắt buộc lưu mẫu.

Firebase CLI

firebase remoteconfig:versions:list

Sử dụng tùy chọn --limit để giới hạn số lượng phiên bản được trả lại. Vượt qua '0' để tìm nạp tất cả các phiên bản.

Danh sách các mẫu bao gồm siêu dữ liệu cho tất cả các phiên bản được lưu trữ, bao gồm thời gian cập nhật, người dùng đã thực hiện và liệu nó được tạo thông qua bảng điều khiển hay API REST. Đây là một ví dụ về phần tử phiên bản:

{
  "versions": [{
    "version_number": "6",
    "update_time": "2022-05-12T02:38:54Z",
    "update_user": {
      "name": "Jane Smith",
      "email": "jane@developer.org",
      "imageUrl": "https://lh3.googleusercontent.com/a-/..."
    },
    "description": "One small change on the console",
    "origin": "CONSOLE",
    "update_type": "INCREMENTAL_UPDATE"
  }]

Truy xuất phiên bản cụ thể của mẫu Cấu hình từ xa

Bạn có thể truy xuất bất kỳ phiên bản lưu trữ cụ thể nào của mẫu Cấu hình từ xa. Ví dụ:

Node.js

getTemplate() mà không có bất kỳ đối số nào để truy xuất phiên bản mới nhất của mẫu hoặc để truy xuất một phiên bản cụ thể, hãy sử dụng getTemplateAtVersion() .

// Get template version: 6
admin.remoteConfig().getTemplateAtVersion('6')
  .then((template) => {
    console.log("Successfully fetched the template with ETag: " + template.etag);
  })
  .catch((error) => {
    console.log(error);
  });

Java

Template template = FirebaseRemoteConfig.getInstance().getTemplateAtVersionAsync(versionNumber).get();
// See the ETag of the fetched template.
System.out.println("Successfully fetched the template with ETag: " + template.getETag());

NGHỈ NGƠI

curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig?version_number=6

Tham số URL ?version_number chỉ hợp lệ cho các hoạt động GET ; bạn không thể sử dụng nó để chỉ định số phiên bản cho các bản cập nhật. Một yêu cầu nhận tương tự không có tham số ?version_number sẽ truy xuất mẫu đang hoạt động hiện tại.

Bảng điều khiển Firebase

Theo mặc định, ngăn chi tiết trong tab Lịch sử thay đổi hiển thị mẫu hiện hoạt hiện tại. Để xem chi tiết cho một phiên bản khác trong danh sách, hãy chọn nó từ menu bên phải.

Bạn có thể xem sự khác biệt chi tiết của phiên bản hiện được chọn và bất kỳ phiên bản được lưu trữ nào khác bằng cách di chuột qua menu ngữ cảnh cho bất kỳ phiên bản không được chọn nào và chọn So sánh với phiên bản đã chọn.

Firebase CLI

firebase remoteconfig:get -v VERSION_NUMBER

Theo tùy chọn, bạn có thể ghi đầu ra vào một tệp được chỉ định với -o, FILENAME .

Quay lại phiên bản được lưu trữ cụ thể của mẫu Cấu hình từ xa

Bạn có thể quay trở lại bất kỳ phiên bản lưu trữ nào của mẫu. Ví dụ:

Node.js

// Roll back to template version: 6
admin.remoteConfig().rollback('6')
  .then((template) => {
    console.log("Successfully rolled back to template version 6.");
    console.log("New ETag: " + template.etag);
  })
  .catch((error) => {
    console.log('Error trying to rollback:', e);
  })

Java

try {
  Template template = FirebaseRemoteConfig.getInstance().rollbackAsync(versionNumber).get();
  System.out.println("Successfully rolled back to template version: " + versionNumber);
  System.out.println("New ETag: " + template.getETag());
} catch (ExecutionException e) {
  if (e.getCause() instanceof FirebaseRemoteConfigException) {
    FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause();
    System.out.println("Error trying to rollback template.");
    System.out.println(rcError.getMessage());
  }
}

NGHỈ NGƠI

Để quay trở lại mẫu Cấu hình từ xa được lưu trữ, hãy phát hành HTTP POST với phương thức tùy chỉnh :rollback và trong phần nội dung yêu cầu, phiên bản cụ thể để áp dụng. Ví dụ:

curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -H "Content-Type: application/json" -X POST https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig:rollback -d '{"version_number": 6}'

Phản hồi chứa nội dung của mẫu được lưu trữ hiện đang hoạt động, với siêu dữ liệu phiên bản mới của nó.

Bảng điều khiển Firebase

Đối với các phiên bản mẫu trước đó đủ điều kiện để khôi phục, một nút tùy chọn để quay lại phiên bản đó được hiển thị ở trên cùng bên phải của trang Lịch sử thay đổi . Nhấp và xác nhận điều này chỉ khi bạn chắc chắn muốn quay trở lại phiên bản đó và sử dụng các giá trị đó ngay lập tức cho tất cả các ứng dụng và người dùng.

Firebase CLI

firebase remoteconfig:rollback -v VERSION_NUMBER

Lưu ý rằng thao tác khôi phục này tạo ra một phiên bản được đánh số mới một cách hiệu quả. Ví dụ: quay ngược lại từ phiên bản 10 lên phiên bản 6 sẽ tạo một bản sao mới của phiên bản 6, chỉ khác với bản gốc ở chỗ số phiên bản của nó là 11. Phiên bản gốc 6 vẫn được lưu trữ, giả sử nó chưa hết hạn và phiên bản 11 trở thành mẫu hoạt động.

Tải xuống các mặc định của mẫu Cấu hình từ xa

Vì ứng dụng của bạn có thể không phải lúc nào cũng được kết nối với Internet, bạn nên định cấu hình các giá trị mặc định của ứng dụng phía máy khách cho tất cả các thông số Cấu hình từ xa. Bạn cũng nên đồng bộ hóa định kỳ các giá trị mặc định của ứng dụng khách và giá trị tham số mặc định của phần phụ trợ Cấu hình từ xa, vì chúng có thể thay đổi theo thời gian.

Như được mô tả trong các liên kết dành riêng cho nền tảng ở cuối phần này, bạn có thể đặt các giá trị mặc định này theo cách thủ công trong ứng dụng của mình hoặc bạn có thể hợp lý hóa quy trình này bằng cách tải xuống các tệp chỉ chứa các cặp khóa-giá trị cho tất cả các tham số và giá trị mặc định của chúng trong mẫu cấu hình từ xa đang hoạt động. Sau đó, bạn có thể đưa tệp này vào dự án của mình và định cấu hình ứng dụng của bạn để nhập các giá trị này.

Bạn có thể tải xuống các tệp này ở định dạng XML cho ứng dụng Android, định dạng danh sách thuộc tính (plist) cho ứng dụng iOS và JSON cho ứng dụng web.

Chúng tôi khuyên bạn nên tải xuống định kỳ các mặc định của Cấu hình từ xa trước khi có bất kỳ bản phát hành ứng dụng mới nào để đảm bảo rằng ứng dụng của bạn và phần phụ trợ Cấu hình từ xa luôn đồng bộ hóa.

Để tải xuống tệp có chứa các giá trị mặc định của mẫu:

NGHỈ NGƠI

curl --compressed -D headers -H "Authorization: Bearer token -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=file_format'

Sử dụng XML , PLIST hoặc JSON làm giá trị format , tùy thuộc vào định dạng tệp bạn muốn tải xuống.

Bảng điều khiển Firebase

  1. Trong tab Tham số , mở Menu và chọn Tải xuống các giá trị mặc định .
  2. Khi được nhắc, hãy bấm vào nút radio tương ứng với định dạng tệp bạn muốn tải xuống, sau đó bấm Tải xuống tệp .

Để biết thêm thông tin về cách nhập các giá trị mặc định của Cấu hình từ xa vào ứng dụng của bạn, hãy xem: