javascript - 如何根据 firebase cli 别名分离部署构建
问题描述
在使用开发与公共时,我正在尝试分离部署构建。
我.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环境变量,并在运行时使用 SDK 读取它们。
推荐阅读
- dummy-variable - ML:虚拟变量陷阱或为什么我们有 n-1 个虚拟变量的原因?
- javascript - 为什么 ChartJS 不能在 Windows 10 机器上运行?(在 MacOS 上运行良好)
- sql-server - CTE 产生意外结果
- c - 为什么要使用变量的地址来改变变量的值?
- java - 使用 google tink 库解密密钥时出现标签不匹配错误
- python - 如何初始化 K 表示在具有 569 行(样本)和 30 列(特征)的数据矩阵上聚类?
- python - 树莓派步进电机
- powershell - conda 在 powershell 上激活
- r - R中的变量选择
- arrays - Xcode 10.2 中下标的模糊使用