Javascript 如何基于firebase cli别名分离部署构建

Javascript 如何基于firebase cli别名分离部署构建,javascript,firebase,google-cloud-functions,firebase-cli,Javascript,Firebase,Google Cloud Functions,Firebase Cli,我试图在使用开发和公共时分离部署构建 我的.firebaserc设置如下: { "projects": { "dev": "PROJECTNAME-development", "public": "PROJECTNAME-public" } } 在我的一个函数中,我必须提到存储桶: const bucket = storage.bucket('PROJECTNAME-public.appspot.com') 目前,我必须在转换之前更改名称 我希望这样,当我部署到dev

我试图在使用开发和公共时分离部署构建

我的
.firebaserc
设置如下:

{
  "projects": {
    "dev": "PROJECTNAME-development",
    "public": "PROJECTNAME-public"
  }
}
在我的一个函数中,我必须提到存储桶:

const bucket = storage.bucket('PROJECTNAME-public.appspot.com')
目前,我必须在转换之前更改名称

我希望这样,当我部署到dev时,我可以部署到我的dev项目。。。大概是这样的:

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

在文档中,我似乎找不到任何允许我这样做的内容。

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

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

const admin = require('firebase-admin');
admin.initializeApp();
const bucket = admin.storage().bucket();
如果您使用的是云存储节点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,并在运行时使用SDK读取这些值