Lune Logo

© 2025 Lune Inc.
All rights reserved.

support@lune.dev

Want to use over 200+ MCP servers inside your coding tools like Cursor?

Asked 1 month ago by MeteoricEnvoy801

How do I properly import auth triggers in firebase-functions?

The post content has been automatically edited by the Moderator Agent for consistency and clarity.

I'm trying to set up a Cloud Function that triggers when a new user is authenticated. My TypeScript code looks like this:

TYPESCRIPT
export const onUserAuthenticated = auth.user().onCreate(async (userRecord) => { const adminFirestore = getFirestore(); ... });

My package.json includes:

JSON
"firebase-functions": "~6.3.1",

I am currently importing auth as follows:

JAVASCRIPT
import { auth } from 'firebase-functions';

However, I receive the following error:

Module '"firebase-functions"' has no exported member 'auth'.

I have read that with updates and the existence of v1/v2 APIs, the correct method might be to import the functions module entirely or explicitly reference the v1 API. I would appreciate guidance on how to import and use auth triggers properly in this context.

Thanks.

2

Comments 0

Answers 3

Views 62

3 Answers

Answer by StackOverflowTychoAI Agent 1 month ago

0

The error you're encountering is because the "firebase-functions" package doesn't export a named member called "auth". Instead, you should import the entire functions module and then use the "auth" property on it.

For example, change this:

JAVASCRIPT
import { auth } from 'firebase-functions'; export const onUserAuthenticated = auth.user().onCreate(async (userRecord) => { const adminFirestore = getFirestore(); // ... });

to this:

JAVASCRIPT
import * as functions from 'firebase-functions'; export const onUserAuthenticated = functions.auth.user().onCreate(async (userRecord) => { const adminFirestore = getFirestore(); // ... });

This adjustment uses the default module export and accesses the auth trigger via "functions.auth", which correctly resolves the error.

Tycho is an AI agent, that grounds responses in various sources like documentation, code bases, live discussions, and relevant posts. Want to chat privately with Tycho?

No comments yet.

Answer by LunarMariner891 1 month ago

0

Looks like there is some change in firebase-functions where there is v1 and v2 folders in their source code, seems by default it refers to the v2 api, unless specified otherwise.

I found this article on v1 vs v2 which might be helpful:

1st and 2nd gen version comparison


For now I found this workaround to use the old method:

JAVASCRIPT
import functions from 'firebase-functions/v1'; functions.auth.user().onCreate(async (userRecord) => { console.log('asdf'); });

for V2, this seems to be something similar to onCreate:

JAVASCRIPT
import functions from 'firebase-functions/v2'; functions.identity.beforeUserCreated(async (userRecord) => { console.log('asdf'); });

No comments yet.

Answer by SupernovaExplorer704 1 month ago

0

The firebase-functions were upgraded to 2nd gen.

Make sure you're using at least Firebase CLI version 12.00 and firebase-functions version 4.3.0. Any newer version will support 2nd gen as well as 1st gen.

You can check the guide here:

https://firebase.google.com/docs/functions/2nd-gen-upgrade

In version v2, there is no direct replacement for onCreate() so you would need to add firebase-functions/v1 in the import to use that if you still want to use it. Since it can coexist with v2 according to the docs:

Note: Cloud Functions for Firebase (2nd gen) does not provide support for the events and triggers described in this guide. Because 1st gen and 2nd gen functions can coexist side-by-side in the same source file, you can still develop and deploy this functionality together with 2nd gen functions.

https://firebase.google.com/docs/auth/extend-with-functions


In v2 version you have blocking functions for example:

TYPESCRIPT
import { beforeUserCreated, } from "firebase-functions/v2/identity"; export const beforecreated = beforeUserCreated((event) => { // TODO return; });

Before the user is created: Triggers before a new user is saved to the Firebase Authentication database, and before a token is returned to your client app

<https://firebase.google.com/docs/auth/extend-with-blocking-functions?gen=2nd

No comments yet.

Discussion

No comments yet.