【发布时间】:2021-04-28 07:09:08
【问题描述】:
我有 2 个函数连接到同一个触发器。我只看到其中一个在新用户注册时触发。这是已知的限制吗?我在日志中没有任何错误。
我的两个函数如下所示:
//utils/emailer.js
exports.sendWelcomeEmail = functions.auth.user().onCreate((user) => {
...
return sendWelcomeEmail(email, displayName);
});
//user/index.js
exports.onUserCreated = functions.auth.user().onCreate((user) => {
...
});
我的 index.js
"use strict";
const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp(functions.config().firebase);
exports.constants = require('./constants');
exports.emailers = require('./utils/emailer'); //utils/emailer.js
exports.userFunctions = require('./user'); //users/index.js
【问题讨论】:
-
我们可以通过使用同一个触发器部署两个不同的函数来为同一个触发器执行多个函数。您可以在 firebase
Function Logs控制台中检查函数触发器和日志。 -
正如 Muthu 所说:这不是我所知道的限制。我实际上不确定在部署时是否会检测到您的功能,因为我认为它们可能会嵌套到其他导出中。您可能需要检查部署这些函数时获得的日志,以及控制台中的调用日志。
-
Ok Logs in Google Cloud Platform 也会显示来自 emailer.js 的日志。出于某种原因,我在 Firebase 函数日志部分没有注意到它。我使用 nodemailer 时出现身份验证错误,这就是为什么电子邮件没有被发送的原因。感谢您的建议。
标签: node.js firebase firebase-authentication google-cloud-functions