完成状态代码:Firebase 函数上的 204 并且什么都没有发生

Getting finished with status code: 204 on Firebase Function and nothings happened

我正在开发向客户发送电子邮件的功能。

exports.sendRestockingNotification = functions.https.onCall((data) => {
  try {
    console.log("Sending confirmation email to the customer...");
    sendEmailRestocking(data.numero, data.nombre, data.emails);
  } catch (error) {
    console.error("Unexpected error: ", error);
  }
});

function sendEmailRestocking (numero, nombre, emails) {
  console.log("Sending Email...");
    return transport.sendMail({
      from: "XXXXX <xxxxxxxxxxxxx@gmail.com>",
      to: emails,
      subject: "El artículo " + nombre + " (" + numero + ") vuelve a estar disponible.",
      html: 
            `
            <div class="container rounded"  style="padding: 10px 30px;">
                <div class="container rounded" style="background-color: #0bbe83;">
                    <h1 style="color: white; padding: 5px;">TejidosPulido</h1>
                </div>
                <div class="row" style="padding: 10px 50px;">
                    <h5 style="color: #0bbe83;">Hola, </h5>
                    <p>
                        El artículo ${nombre} (${numero}) vuelve a estar disponible. ¡Date prisa antes de que se termine!
                    </p>
                </div>
                <br>
                <p style="padding: 10px 30px;"> 
                    Un saludo,
                    <br>
                    Tu equipo TejidosPulido
                </p>
            </div>
          `,
    });
}

但我在 Firebase Functions 控制台中总是得到同样的结果,任何邮件都已发送,调试消息 console.log("Sending a confirmation email to the customer..."); 也没有显示:

sendRestockingNotification -> 函数执行开始

sendRestockingNotification -> 函数执行耗时 14 毫秒,完成状态代码:204

查看 Callable Cloud Functions 的文档。您需要 return 可以 JSON 编码的数据。

因此您需要等待异步 sendEmailRestocking() 函数终止才能发送响应。例如,具有以下改编:

exports.sendRestockingNotification = functions.https.onCall(async (data) => {  // See async
  try {
    console.log("Sending confirmation email to the customer...");
    await sendEmailRestocking(data.numero, data.nombre, data.emails);
    return {result: "mail send"}; // For example
  } catch (error) {
    // See https://firebase.google.com/docs/functions/callable#handle_errors
    console.error("Unexpected error: ", error);
  }
});