Cloud Functions

Environment Var and Config

Function Environment variables is essentially using this beta feature from GCP: https://cloud.google.com/deployment-manager/runtime-configurator/set-and-get-variablesarrow-up-right

Using Environment Variablesarrow-up-right see also Environment configurationarrow-up-right

https://medium.com/@vik.ceo/setting-up-environment-variables-for-firebase-functions-d78e52b84f48arrow-up-right https://stackoverflow.com/questions/44766536/how-do-you-setup-local-environment-variables-for-cloud-functions-for-firebasearrow-up-right

To set in firebase environment do

firebase functions:config:set aws.aws_access_key_id="XXXX" aws.aws_scret_access_key="XXXX"

Using env var Locally

For this to run locally: firebase functions:config:get > .runtimeconfig.json in functions folder, also add to .gitignore

See instructions in their docsarrow-up-right. https://cloud.google.com/functions/docs/env-vararrow-up-right

Storage Triggers

Firestore triggers https://firebase.google.com/docs/functions/firestore-eventsarrow-up-right

Since you cannot configure a function to be triggered by subdirectories. It's only possible to listen to the entire bucket. If you have a trigger based on Bucket, the recommendation is to create a new, separate bucket so that you are not triggered every time a file changes in the Bucket.

  1. Create a new bucket

  2. Update your Functions environment config with new bucket name

  3. Call the functions.config() to get the specified bucket name

You can do environments for Functions:

And then subsequently in a Function you'd use the config like so:

Caveat

A big caveat here - you don't have a document anywhere in your repo that tells you what this is. You need to be logged in into firebase and run the above

command to know what this is.

Last updated

Was this helpful?