我尝试使用 Firebase Functions v6.1.0 设置用于删除用户的 Firebase Auth 触发器,但出现 TypeError。这是我的最小复制案例:
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
});
这会产生错误:
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)
环境:
firebase 函数:6.1.0 firebase 管理员:12.7.0 Node.js:22
我尝试过各种语法,包括:
functions.auth.user().beforeDelete 函数.identity.beforeUserDeleted functions.auth.userDeleted().onEvent
但它们都不起作用。根据 Firebase 文档,这应该是正确的语法。 如何在 Firebase Functions v6.1.0 中正确设置用于删除用户的身份验证触发器?
谢谢!
根据 Firebase 文档在用户删除时触发函数,它期望在回调函数中使用用户变量
这就是为什么您的用户未定义。
exports.sendByeEmail = functions.auth.user().onDelete(async (user) => {
// ...
});