重复使用项目的扩展程序配置

在 Firebase 项目中安装和配置扩展程序后,您可以保存您的配置并将其部署到其他项目中。保存的配置包含您已安装的每个扩展程序实例的信息,其中包括每个实例的版本以及您在安装这些扩展程序时指定的参数值。

可能的用途包括:

  • 在其他项目中重新创建项目的扩展程序配置
  • 与他人共享您的扩展程序配置
  • 将扩展程序配置提交到源代码控制系统
  • 将扩展程序添加到 CI/CD 流水线

保存项目的扩展程序配置

要保存项目的扩展程序配置,请执行以下操作:

  1. 如果您尚未设置 Firebase CLI,请执行此操作
  2. 从 shell 提示符处切换到项目目录(您的项目目录包含 firebase.json 文件)。
  3. 运行 ext:export 命令:
    firebase ext:export –-project=YOUR_PROJECT_ID

ext:export 命令会将 extensions 部分添加到 firebase.json 文件中。例如:

{
 "extensions": {
   "my-bigquery-extension": "firebase/firestore-bigquery-export@^0.1.18",
   "my-image-resizer": "firebase/storage-resize-images@^0.1.22",
 }
}

此外,ext:export 命令还会创建一个 extensions 目录,其中包含您已安装的每个扩展程序实例的 .env 文件。这些文件包含每个实例的配置参数。例如,storage-resize-images 的实例可能有一个 .env 文件,如下所示:

IMAGE_TYPE=jpeg
LOCATION=us-central1
IMG_BUCKET=${param:PROJECT_ID}.appspot.com
IMG_SIZES=100x100
DELETE_ORIGINAL_FILE=false

将扩展程序配置部署到项目

保存项目的扩展程序配置后,您可以使用 Firebase CLI 将其部署到项目。部署扩展程序配置时,您可以安装、更新和配置所有扩展程序实例,并将已保存的配置一次性部署到项目中。

要部署扩展程序配置,请执行以下操作:

  1. 从 shell 提示符中,切换到包含已保存的扩展程序配置的目录(这是包含 firebase.json 的目录。如果您刚刚运行了 ext:export,那么您已转到正确目录)。
  2. 运行 deploy 命令,指定要在其中部署扩展程序部署的项目:
    firebase deploy --only extensions –-project=YOUR_PROJECT_ID

deploy 命令将验证每个实例配置,询问您是否要从目标项目中删除 firebase.json 中未列出的任何扩展程序实例,然后部署所有扩展程序实例。

项目专用的扩展程序配置

可以将已保存的扩展程序配置部署到多个不同的项目(例如,预演项目和生产项目)。执行此操作时,某些参数值对于各个项目可能有所不同。利用项目专用的 .env 文件可以实现此目的。根据项目而有所不同的参数值可以放在扩展程序 /${extensionInstanceId}.env.${projectIdOrAlias} 中,而共用的参数值可以放在扩展程序 extensions/${extensionInstanceId}.env 中。