代码之家  ›  专栏  ›  技术社区  ›  HJo

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

  •  0
  • HJo  · 技术社区  · 7 年前

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

    .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');
    }
    

    我似乎在文档中找不到任何允许我这样做的东西。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Doug Stevenson    7 年前

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

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

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

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

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

    推荐文章