Tạo phiên bản và mẫu Cấu hình từ xa


Mẫu Cấu hình từ xa là tập hợp các mẫu có định dạng JSON các thông số và điều kiện mà bạn đã tạo cho dự án Firebase của mình. Bạn có thể tạo mẫu ứng dụng mà từ đó ứng dụng của bạn tìm nạp các giá trị và server mẫu mà từ đó máy khách của máy chủ có thể tìm nạp các giá trị.

Phần này thảo luận về mẫu ứng dụng. Để tìm hiểu về phiên bản dành riêng cho từng máy chủ mẫu, nhấp vào Mẫu máy chủ.

Bạn sửa đổi và quản lý mẫu bằng cách sử dụng bảng điều khiển của Firebase, bảng điều khiển này hiển thị nội dung của mẫu ở định dạng đồ hoạ trong Tham số và Các thẻ Điều kiện.

Bạn cũng có thể sử dụng API REST Cấu hình từ xa và SDK dành cho quản trị viên hoặc Giao diện dòng lệnh (CLI) của Firebase để sửa đổi và quản lý mẫu khách hàng của bạn.

Dưới đây là ví dụ về tệp mẫu ứng dụng:

      {
        "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"
        }
      }

Bạn có thể thực hiện các tác vụ quản lý phiên bản sau bằng bảng điều khiển của Firebase:

  • Liệt kê tất cả phiên bản mẫu đã lưu trữ
  • Truy xuất một phiên bản cụ thể
  • Khôi phục về phiên bản ứng dụng cụ thể
  • Xoá mẫu Cấu hình từ xa trong phần Thay đổi nhật ký trang

Bạn cũng có thể liệt kê mẫu, truy xuất mẫu và khôi phục mẫu bằng cách sử dụng API phụ trợ CLI của Firebase và Cấu hình từ xa.

Mỗi loại mẫu được lưu trữ có tổng cộng tối đa 300 phiên bản được lưu trữ trong suốt thời gian hoạt động (300 mẫu ứng dụng khách và 300 mẫu máy chủ), bao gồm các mẫu được lưu trữ số phiên bản cho mẫu đã xoá. Nếu bạn xuất bản hơn 300 các phiên bản mẫu cho mỗi loại mẫu trong suốt thời gian tồn tại của dự án, các phiên bản cũ nhất bị xoá, duy trì tối đa 300 phiên bản loại đó.

Mỗi lần bạn cập nhật thông 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 một phiên bản mà bạn có thể truy xuất hoặc khôi phục khi cần. Số phiên bản được tăng tuần tự từ giá trị ban đầu được Cấu hình từ xa lưu trữ. Tất cả các mẫu đều có trường version như minh hoạ, trong đó có chứa siêu dữ liệu về nội dung đó phiên bản cụ thể.

Bạn có thể xoá mẫu Cấu hình từ xa khi cần trong Nhật ký thay đổi trang trên bảng điều khiển Cấu hình từ xa.

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ấu hình từ xa của bạn mẫu.

Để biết thêm chi tiết về cách tạo, sửa đổi và lưu mẫu theo phương thức lập trình, xem Sửa đổi Cấu hình từ xa theo phương thức lập trình.

Liệt kê tất cả phiên bản đã 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ả phiên bản được lưu trữ của mẫu Cấu hình từ xa. Để thực hiện việc này:

bảng điều khiển của Firebase

Trong thẻ Thông số, chọn "đồng hồ" biểu tượng hiển thị ở trên cùng bên phải. Thao tác này sẽ mở ra Nhật ký thay đổi trang liệt kê tất cả phiên bản mẫu đã lưu trữ trong trình đơn 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 những thay đổi bắt nguồn từ Bảng điều khiển, với API REST từ một quá trình khôi phục, hoặc liệu chúng có phải là những thay đổi gia tăng từ thao tác bắt buộc lưu mẫu hay không.

Giao diện dòng lệnh (CLI) của Firebase

firebase remoteconfig:versions:list

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

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());
}

Kiến trúc chuyển trạng thái đại diện (REST)

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

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

```json
{
  "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 mọi dữ liệu cụ thể đã lưu trữ phiên bản của mẫu Cấu hình từ xa. Cách truy xuất mẫu đã lưu trữ phiên bản:

bảng điều khiển của Firebase

Theo mặc định, ngăn chi tiết trong Thẻ Nhật ký thay đổi hiển thị mẫu đang hoạt động. Để xem thông tin chi tiết về một phiên bản khác trong danh sách, chọn phiên bản đó từ trình đơn bên phải.

Bạn có thể xem điểm khác biệt chi tiết của phiên bản đang chọn và bất kỳ phiên bản nào khác phiên bản được lưu trữ bằng cách di chuột lên trình đơn theo bối cảnh đối với bất kỳ phiên bản nào chưa được chọn rồi chọn So sánh với phiên bản đã chọn.

Giao diện dòng lệnh (CLI) của Firebase

firebase remoteconfig:get -v VERSION_NUMBER

Nếu muốn, bạn có thể ghi đầu ra vào một tệp được chỉ định bằng -o, FILENAME.

Node.js

Đạt 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());

Kiến trúc chuyển trạng thái đại diện (REST)

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 toán tử GET; bạn không thể sử dụng mẫu này để chỉ định số phiên bản cho bản cập nhật. Nhận được tương tự yêu cầu mà không có ?version_number sẽ truy xuất mẫu hoạt động hiện tại.

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

Bạn có thể khôi phục về phiên bản của mẫu. Cách khôi phục mẫu:

bảng điều khiển của Firebase

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

Giao diện dòng lệnh (CLI) của Firebase

firebase remoteconfig:rollback -v VERSION_NUMBER

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());
  }
}

Kiến trúc chuyển trạng thái đại diện (REST)

Để khôi phục về một mẫu Cấu hình từ xa đã lưu trữ, hãy tạo một yêu cầu POST qua HTTP bằng phương thức tuỳ chỉnh :rollback và trong 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 này chứa nội dung của mẫu được lưu trữ hiện đang hoạt động, cùng với siêu dữ liệu phiên bản mới.

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

Xoá mẫu Cấu hình từ xa

Bạn có thể xoá mẫu Cấu hình từ xa khỏi bảng điều khiển của Firebase. Người nhận xoá mẫu Cấu hình từ xa:

1. Trong Cấu hình từ xa Tham số trang, nhấp vào Nhật ký thay đổi.
  1. Chuyển sang mẫu bạn muốn xoá, rồi nhấp vào Lựa chọn khác, rồi chọn Xoá.

  2. Khi được nhắc xác nhận thao tác xoá, hãy nhấp vào Xoá.

Tải xuống và xuất bản mẫu Cấu hình từ xa

Tải xuống và xuất bản mẫu Cấu hình từ xa để tích hợp vào kiểm soát nguồn và hệ thống xây dựng, tự động cập nhật cấu hình và giữ lại các tham số và các giá trị được đồng bộ hoá trong nhiều dự án.

Bạn có thể tải mẫu Cấu hình từ xa đang hoạt động xuống theo phương thức lập trình hoặc Sau đó, bạn có thể cập nhật đã xuất tệp JSON lên và xuất bản tệp đó lên cùng dự án, hoặc xuất bản lên một tệp mới hoặc dự án hiện có.

Giả sử bạn có nhiều dự án thể hiện các giai đoạn khác nhau trong vòng đời phát triển phần mềm, như phát triển, kiểm thử, thử nghiệm và sản xuất môi trường xung quanh. Trong trường hợp này, bạn có thể quảng bá mẫu đã được thử nghiệm đầy đủ từ môi trường thử nghiệm sang môi trường sản xuất bằng cách tải xuống từ dự án thử nghiệm và xuất bản nó lên dự án sản xuất.

Bạn cũng có thể sử dụng phương thức này để di chuyển cấu hình từ một dự án sang một dự án khác hoặc điền sẵn các thông số và giá trị từ một dự án đã thiết lập.

Các thông số và giá trị thông số được tạo cụ thể dưới dạng biến thể trong một Thử nghiệm Thử nghiệm A/B không được đưa vào các mẫu đã xuất.

Cách xuất và nhập mẫu Cấu hình từ xa:

  1. Tải mẫu Cấu hình từ xa hiện tại xuống.
  2. Xác thực mẫu Cấu hình từ xa.
  3. Xuất bản mẫu Cấu hình từ xa.

Tải Mẫu Cấu hình từ xa hiện tại xuống

Sử dụng tính năng sau để tải mẫu Cấu hình từ xa đang hoạt động xuống trong Định dạng JSON:

bảng điều khiển của Firebase

  1. Từ Thông số hoặc điều kiện Cấu hình từ xa tab, mở Trình đơn và chọn Tải tệp cấu hình hiện tại xuống.
  2. Khi được nhắc, hãy nhấp vào Tải tệp cấu hình xuống, rồi chọn vị trí nơi bạn muốn lưu tệp, rồi nhấp vào Lưu.

Giao diện dòng lệnh (CLI) của Firebase

firebase remoteconfig:get -o filename

Node.js

function getTemplate() {
  var config = admin.remoteConfig();
  config.getTemplate()
      .then(function (template) {
        console.log('ETag from server: ' + template.etag);
        var templateStr = JSON.stringify(template);
        fs.writeFileSync('config.json', templateStr);
      })
      .catch(function (err) {
        console.error('Unable to get template');
        console.error(err);
      });
}

Java

Template template = FirebaseRemoteConfig.getInstance().getTemplateAsync().get();
// See the ETag of the fetched template.
System.out.println("ETag from server: " + template.getETag());

Kiến trúc chuyển trạng thái đại diện (REST)

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

Lệnh này xuất tải trọng JSON vào một tệp và các tiêu đề (bao gồm cả ETag) vào một tệp headers riêng.

Xác thực mẫu Cấu hình từ xa

Bạn có thể xác thực nội dung cập nhật mẫu trước khi xuất bản bằng cách sử dụng SDK quản trị của Firebase hoặc API REST. Các mẫu cũng được xác thực khi bạn thử xuất bản từ bảng điều khiển Firebase CLI hoặc Firebase.

Quy trình xác thực mẫu sẽ kiểm tra lỗi, chẳng hạn như khoá trùng lặp cho thông số và điều kiện, tên điều kiện không hợp lệ hoặc điều kiện không tồn tại, hoặc ETag bị định dạng sai. Ví dụ: yêu cầu chứa nhiều hơn cho phép số lượng khoá (2000) sẽ trả về thông báo lỗi Param count too large.

Node.js

function validateTemplate(template) {
  admin.remoteConfig().validateTemplate(template)
      .then(function (validatedTemplate) {
        // The template is valid and safe to use.
        console.log('Template was valid and safe to use');
      })
      .catch(function (err) {
        console.error('Template is invalid and cannot be published');
        console.error(err);
      });
}

Java

try {
  Template validatedTemplate = FirebaseRemoteConfig.getInstance()
          .validateTemplateAsync(template).get();
  System.out.println("Template was valid and safe to use");
} catch (ExecutionException e) {
  if (e.getCause() instanceof FirebaseRemoteConfigException) {
    FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause();
    System.out.println("Template is invalid and cannot be published");
    System.out.println(rcError.getMessage());
  }
}

Kiến trúc chuyển trạng thái đại diện (REST)

Xác thực nội dung cập nhật mẫu bằng cách thêm tham số URL ?validate_only=true đối với yêu cầu xuất bản:

curl --compressed -H "Content-Type: application/json; UTF8" -H "If-Match: last-returned-etag" -H "Authorization: Bearer token" -X PUT https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig?validate_only=true -d @filename

Nếu mẫu của bạn được xác thực thành công, lệnh curl sẽ trả về Mẫu JSON mà bạn đã gửi và trong tệp headers đã lưu, bạn sẽ thấy trạng thái HTTP/2 200 và ETag đã cập nhật có hậu tố -0. Nếu mẫu chưa được xác thực, bạn sẽ nhận được thông báo lỗi xác thực trong Phản hồi JSON và tệp headers của bạn sẽ chứa phản hồi không phải là 200 (và không có ETag).

Xuất bản mẫu Cấu hình từ xa

Sau khi tải mẫu xuống, hãy thực hiện mọi thay đổi cần thiết đối với nội dung JSON và xác thực tệp đó, bạn có thể xuất bản tệp lên một dự án.

Việc xuất bản mẫu sẽ thay thế toàn bộ mẫu cấu hình hiện có bằng đã cập nhật và tăng phiên bản mẫu thêm một. Vì toàn bộ cấu hình này sẽ được thay thế nếu bạn xoá một tham số khỏi tệp JSON và xuất bản nó, thông số sẽ bị xoá khỏi máy chủ và không còn dùng được nữa cho khách hàng.

Sau khi xuất bản, các thay đổi đối với thông số và giá trị sẽ xuất hiện ngay lập tức đối với ứng dụng và người dùng của bạn. Nếu cần, bạn có thể quay lại phiên bản trước đó.

Sử dụng các lệnh sau để xuất bản mẫu:

bảng điều khiển của Firebase

  1. Từ Thông số hoặc điều kiện Cấu hình từ xa tab, mở Trình đơn, rồi chọn Xuất bản từ tệp.
  2. Khi được nhắc, hãy nhấp vào Duyệt qua, điều hướng đến và chọn Tệp Cấu hình từ xa mà bạn muốn xuất bản, sau đó nhấp vào Chọn.
  3. Tệp sẽ được xác thực và nếu thành công, bạn có thể nhấp vào Xuất bản để cung cấp ngay cấu hình cho ứng dụng và người dùng.

Node.js

function publishTemplate() {
  var config = admin.remoteConfig();
  var template = config.createTemplateFromJSON(
      fs.readFileSync('config.json', 'UTF8'));
  config.publishTemplate(template)
      .then(function (updatedTemplate) {
        console.log('Template has been published');
        console.log('ETag from server: ' + updatedTemplate.etag);
      })
      .catch(function (err) {
        console.error('Unable to publish template.');
        console.error(err);
      });
}

Java

try {
  Template publishedTemplate = FirebaseRemoteConfig.getInstance()
          .publishTemplateAsync(template).get();
  System.out.println("Template has been published");
  // See the ETag of the published template.
  System.out.println("ETag from server: " + publishedTemplate.getETag());
} catch (ExecutionException e) {
  if (e.getCause() instanceof FirebaseRemoteConfigException) {
    FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause();
    System.out.println("Unable to publish template.");
    System.out.println(rcError.getMessage());
  }
}

Kiến trúc chuyển trạng thái đại diện (REST)

curl --compressed -H "Content-Type: application/json; UTF8" -H "If-Match: last-returned-etag" -H "Authorization: Bearer token" -X PUT https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -d @filename

Đối với lệnh curl này, bạn có thể chỉ định nội dung bằng cách sử dụng "@" ký tự, theo sau là tên tệp.

Hoạt động cá nhân hoá và điều kiện Cấu hình từ xa được bao gồm trong các mẫu được tải xuống, nên bạn cần lưu ý những điều sau các giới hạn khi cố gắng xuất bản lên một dự án khác:

  • Không thể nhập các hoạt động cá nhân hoá từ dự án này sang dự án khác.

    Ví dụ: nếu bạn đã bật tính năng cá nhân hoá trong dự án của mình và tải xuống và chỉnh sửa một mẫu, bạn có thể xuất bản mẫu đó lên dự án, nhưng bạn không thể xuất bản dự án đó lên một dự án khác trừ phi bạn xoá các hoạt động cá nhân hoá từ mẫu.

  • Bạn có thể nhập các điều kiện từ dự án này sang dự án khác, nhưng lưu ý rằng bất kỳ các giá trị có điều kiện cụ thể (như ID ứng dụng hoặc đối tượng) phải tồn tại trong dự án mục tiêu trước khi xuất bản.

    Ví dụ: nếu bạn có thông số Cấu hình từ xa sử dụng một điều kiện chỉ định một giá trị nền tảng là iOS, thì mẫu này có thể được xuất bản lên một dự án khác vì giá trị nền tảng là như nhau đối với mọi dự án. Tuy nhiên, nếu ứng dụng chứa điều kiện dựa vào một mã ứng dụng hoặc người dùng cụ thể đối tượng không tồn tại trong dự án mục tiêu, thì việc xác thực sẽ không thành công.

  • Nếu mẫu bạn định xuất bản có chứa các điều kiện dựa vào Google Analytics, Analytics phải được bật trong mục tiêu dự án.

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

Do không phải lúc nào ứng dụng cũng 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ấu hình từ xa tham số. Bạn cũng nên định kỳ đồng bộ hoá giá trị mặc định của ứng dụng khách và giá trị thông 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 đường liên kết dành riêng cho từng nền tảng ở cuối phần này, bạn có thể bạn có thể đặt những giá trị mặc định này theo cách thủ công trong ứng dụng hoặc đơn giản hoá quy trình này bằng cách tải tệp chỉ chứa các cặp khoá-giá trị cho tất cả thông 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ể hãy đưa tệp này vào dự án và định cấu hình ứng dụng để nhập các giá trị này.

Bạn có thể tải các tệp này xuống ở đị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.

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

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

Kiến trúc chuyển trạng thái đại diện (REST)

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 (tuỳ thuộc vào tệp) mà bạn muốn tải xuống.

bảng điều khiển của Firebase

  1. Trong thẻ Thông số, mở Trình đơn rồi chọn Tải các giá trị mặc định xuống.
  2. Khi được nhắc, hãy nhấp vào nút chọn tương ứng với tệp bạn muốn tải xuống, rồi nhấp vào Tải tệp xuống.

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