3

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?

3
  • 4
    Does your index.js contain const functions = require('firebase-functions');?
    – Bob Snyder
    Commented Jul 11, 2018 at 23:57
  • Trying that now... Commented Jul 12, 2018 at 0:00
  • I'm stupid. Thanks. Commented Jul 12, 2018 at 0:02

1 Answer 1

7

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();
1
  • I thought it should be: const functions = require('firebase/functions'); -- Slash ("/") and not Dash ("-")? Commented Apr 27, 2019 at 16:44

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.