export function setup()

in src/setup.ts [28:67]


export function setup() {
  // TEMPORARY WORKAROUND (BUG 63586213):
  // Until the Cloud Functions builder can publish FIREBASE_CONFIG, automatically provide it on import based on what
  // we can deduce.
  if (!process.env.FIREBASE_CONFIG) {
    const cfg = firebaseConfig();
    if (cfg) {
      process.env.FIREBASE_CONFIG = JSON.stringify(cfg);
    }
  }

  // WORKAROUND (BUG 134416569): GCLOUD_PROJECT missing in Node 10
  if (!process.env.GCLOUD_PROJECT && process.env.FIREBASE_CONFIG) {
    process.env.GCLOUD_PROJECT = JSON.parse(
      process.env.FIREBASE_CONFIG
    ).projectId;
  }

  // If FIREBASE_CONFIG is still not found, try using GCLOUD_PROJECT to estimate
  if (!process.env.FIREBASE_CONFIG) {
    if (process.env.GCLOUD_PROJECT) {
      warn(
        'Warning, estimating Firebase Config based on GCLOUD_PROJECT. Initializing firebase-admin may fail'
      );
      process.env.FIREBASE_CONFIG = JSON.stringify({
        databaseURL:
          process.env.DATABASE_URL ||
          `https://${process.env.GCLOUD_PROJECT}.firebaseio.com`,
        storageBucket:
          process.env.STORAGE_BUCKET_URL ||
          `${process.env.GCLOUD_PROJECT}.appspot.com`,
        projectId: process.env.GCLOUD_PROJECT,
      });
    } else {
      warn(
        'Warning, FIREBASE_CONFIG and GCLOUD_PROJECT environment variables are missing. Initializing firebase-admin will fail'
      );
    }
  }
}