1
votes

In index.js, I have:

exports.makeUppercase = functions.database.ref('/messages/{pushId}/original').onCreate((snapshot, context) => {
  // Grab the current value of what was written to the Realtime Database.
  const original = snapshot.val();
  console.log('Uppercasing', context.params.pushId, original);
  const uppercase = original.toUpperCase();
  // You must return a Promise when performing asynchronous tasks inside a Functions such as
  // writing to the Firebase Realtime Database.
  // Setting an "uppercase" sibling in the Realtime Database returns a Promise.
  return snapshot.ref.parent.child('uppercase').set(uppercase);
});

I literally copy-pasted the code from: https://firebase.google.com/docs/functions/get-started

Somehow, when I deploy using

firebase deploy --only functions

I get:

Error: Error occurred while parsing your function triggers. ReferenceError: functions is not defined at Object. (/home/[USERNAME HERE]/functions/index.js:1:87) at Module._compile (module.js:643:30) at Object.Module._extensions..js (module.js:654:10) at Module.load (module.js:556:32) at tryModuleLoad (module.js:499:12) at Function.Module._load (module.js:491:3) at Module.require (module.js:587:17) at require (internal/module.js:11:18) at /usr/local/nvm/versions/node/v8.9.4/lib/node_modules/firebase-tools/lib/triggerParser.js:21:11 at Object. (/usr/local/nvm/versions/node/v8.9.4/lib/node_modules/firebase-tools/lib/triggerParser.js:75:3)

What's going on, and how do I fix it?

1
Does your index.js contain const functions = require('firebase-functions');?Bob Snyder
Trying that now...Kento Nishi
I'm stupid. Thanks.Kento Nishi

1 Answers

5
votes

As the setup documentation explains, you need to import required modules and initialize the app:

// The Cloud Functions for Firebase SDK to create Cloud Functions and setup triggers.
const functions = require('firebase-functions');

// The Firebase Admin SDK to access the Firebase Realtime Database.
const admin = require('firebase-admin');
admin.initializeApp();