如何根据 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 读取它们。
我试图在使用开发与 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 读取它们。