firebase/firebase-functions

Upgrading Firebase-Functions from firebase-functions v4.3.1 to v6.0.1 cause gen 1 functions triggers to be undefined.

dual-x-tech opened this issue ยท 9 comments

Related issues

[REQUIRED] Version info

node:
v20.17.0

firebase-functions:
6.0.1

firebase-tools:
13.18.0

firebase-admin:
12.5.0

npm
10.8.2

[REQUIRED] Test case

[REQUIRED] Steps to reproduce

Upgrade firebase-admin to v12.5.0 and firebase-functions to v6.0.1

Try to deploy this basic code in parenthesis
"
const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp();

exports.helloWorld = functions.https.onRequest((req, res) => {
res.send('Hello from Firebase Functions!');
});

exports.sendWelcomeEmail = functions.auth.user().onCreate((user) => {
console.log(sendWelcomeEmail New user created: UID - ${user.uid});
// Add your email sending logic here
return null; // Always return a value from a Cloud Function
});
"

},

[REQUIRED] Expected behavior

Expect the function to deploy without issue.

[REQUIRED] Actual behavior

 TypeError: Cannot read properties of undefined (reading 'user')
Error: Functions codebase could not be analyzed successfully. It may have a syntax or runtime error

Were you able to successfully deploy your functions?

No, const functions = require('firebase-functions') in version 6.0.1 of firebase functions makes functions.auth.user() undefined

use const functions = require('firebase-functions/v1');

same issue here, auth is missing after updating to 6.0.0

CleanShot 2024-09-24 at 16 08 20@2x

use const functions = require('firebase-functions/v1');

Tried this approach and it did not work.

  1. Downgrading using npm install firebase-admin@11.8.0
    npm install firebase-functions@4.9.0

  2. removing my node_modules folder and package_lock.json file

  3. run npm install

  4. then deploying the functions again worked for me.

use const functions = require('firebase-functions/v1');

Tried this approach and it did not work.

  1. Downgrading using npm install firebase-admin@11.8.0
    npm install firebase-functions@4.9.0
  2. removing my node_modules folder and package_lock.json file
  3. run npm install
  4. then deploying the functions again worked for me.

Yes, the /v1 approach did not work but your the other suggestion of yours worked, thanks.

Good afternoon, i also have the same issue, fresh install from today.
Downgraded and it works . Thank you :)

UPDATE : tested this from comment of @davie-robertson #1622 (comment) and it works too with the latest version๐Ÿ‘๐Ÿผ

import functions from 'firebase-functions/v1'

export const onUserCreate = functions.auth.user().onCreate((user) => {
  console.log(user);
});
slk333 commented

I got it working by doing

import { auth } from "firebase-functions/v1"
export const onDeleteAccount = auth.user().onDelete(async function (user) {

Since a solution has been proposed and the documentation reflects the '/v1' pattern, I'm going to close this issue. However, if you find any issues with the current documentation, feel free to open a new issue.