如何根据 firebase cli 别名分离部署构建

How can I separate deployment builds based on firebase cli alias

我试图在使用开发与 public 时分离部署构建。

我的 .firebaserc 是这样设置的:

{
  "projects": {
    "dev": "PROJECTNAME-development",
    "public": "PROJECTNAME-public"
  }
}

在我的一个函数中,我必须引用存储桶:

const bucket = storage.bucket('PROJECTNAME-public.appspot.com')

目前,我必须在切换之前更改名称

我希望这样当我部署到开发时,我可以部署到我的开发项目...像这样:

let bucket
if (currentAlias === public) {
    bucket = storage.bucket('PROJECTNAME-public.appspot.com');
} else {
    bucket = storage.bucket('PROJECTNAME-development.appspot.com');
}

我似乎无法在文档中找到任何允许我执行此类操作的内容。

听起来您只是想访问项目的默认存储桶。

如果您使用的是 Firebase Admin SDK,只需在没有参数的情况下对其进行初始化,它会自动从环境中获取默认存储桶的名称。

const admin = require('firebase-admin');
admin.initializeApp();
const bucket = admin.storage().bucket();

如果您使用的是 Cloud Storage 节点 SDK,您可以手动从环境中提取存储桶的名称:

const config = JSON.parse(process.env.FIREBASE_CONFIG)
const bucketName = config.storageBucket
const bucket = new Storage().bucket(bucketName) // version 2.x of the SDK

如果您需要访问每个项目的一些其他值,您应该在部署时使用 CLI 配置的 Firebase environment variables,并在运行时使用 SDK 读取它们。