Reputation: 3728
I'm trying to set up a Firebase Auth trigger for user deletion using Firebase Functions v6.1.0, but I'm getting a TypeError. Here's my minimal reproduction case:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const { getFirestore } = require('firebase-admin/firestore');
admin.initializeApp();
exports.registerUser = functions.https.onCall(async (data, context) => {
});
exports.deleteUser = functions.auth.user().onDelete(async () => { // <<<< ERROR
});
This produces the error:
TypeError: Cannot read properties of undefined (reading 'user')
at Object.<anonymous> (/Users/thierry/Documents/firebase-app/functions/index.js:16:37)
at Module._compile (node:internal/modules/cjs/loader:1546:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)
at Module.load (node:internal/modules/cjs/loader:1317:32)
at Module._load (node:internal/modules/cjs/loader:1127:12)
at TracingChannel.traceSync (node:diagnostics_channel:315:14)
at wrapModuleLoad (node:internal/modules/cjs/loader:217:24)
at Module.require (node:internal/modules/cjs/loader:1339:12)
at require (node:internal/modules/helpers:135:16)
at loadModule (/Users/thierry/Documents/firebase-app/functions/node_modules/firebase-functions/lib/runtime/loader.js:40:16)
Environment:
firebase-functions: 6.1.0 firebase-admin: 12.7.0 Node.js: 22
I've tried various syntaxes including:
functions.auth.user().beforeDelete functions.identity.beforeUserDeleted functions.auth.userDeleted().onEvent
But none of them work. According to the Firebase documentation, this should be the correct syntax. How can I properly set up an Auth trigger for user deletion in Firebase Functions v6.1.0?
Thanks!
Upvotes: 1
Views: 82
Reputation: 1571
As stated in the Auth triggers documentation, firebase functions Gen 2 do not have Auth triggers. They were replaced by identity triggers.
You have 2 options to address this:
const functions = require('firebase-functions/v1');
beforeUserCreated
trigger. See documentation for more details.Upvotes: 0
Reputation: 2919
As per the Firebase documentations on Trigger a function on user deletion it expects a user variable to be used within the callback function
Which is why you are getting undefined for user.
exports.deleteUser = functions.auth.user().onDelete(async (user) => {
// ...
});
Upvotes: 0