【问题标题】:Ignoring exception from a finished function in Google Cloud Console Test忽略 Google Cloud Console 测试中已完成功能的异常
【发布时间】:2019-05-31 01:07:23
【问题描述】:

我正在尝试通过电子邮件向自己发送我的 Firebase 数据库的 OnCreate。在谷歌云功能中测试此功能时,我收到错误“忽略已完成功能的异常”。

const functions = require('firebase-functions');
const nodemailer = require('nodemailer');
const gmailEmail = functions.config().gmail.email;
const gmailPassword = functions.config().gmail.password;
const mailTransport = nodemailer.createTransport({
 service: 'gmail',
 auth: {
   user: gmailEmail,
   pass: gmailPassword,
  },
});

const APP_NAME = 'Your App';
exports.sendWelcomeEmail = functions.database.ref('/PickupRequests{pushID}').onCreate((snapshot, context) => {
  return sendWelcomeEmail();
});

async function sendWelcomeEmail() {
  const mailOptions = {
    from: "<noreply@firebase.com>",
    to: "info@abc.com",
    subject: "New Request"
  };
  await mailTransport.sendMail(mailOptions);
  return console.log("Success!");
}

我希望收到一封电子邮件,但我收到了来自 Google Cloud 测试器的错误消息,指出“忽略已完成函数的异常”,尽管控制台也返回“成功!”。这是完整的错误:

 "textPayload": "Ignoring exception from a finished function",
  "insertId": "000000-5e081b31-9b2f-4f9a-a6a6-6c7ca4d38814",
  "resource": {
    "type": "cloud_function",
    "labels": {
      "project_id": "your-app",
      "region": "us-central1",
      "function_name": "sendWelcomeEmail"
    }
  },
  "timestamp": "2019-05-31T00:56:56.926Z",
  "severity": "DEBUG",
  "labels": {
    "execution_id": "jbvvfsrrf8yz"
  },
  "logName": "projects/your-app/logs/cloudfunctions.googleapis.com%2Fcloud-functions",
  "trace": "projects/your-app/traces/5af3a317b80ee34154c1caf1536fc16e",
  "receiveTimestamp": "2019-05-31T00:57:02.981796854Z"
}

【问题讨论】:

    标签: javascript firebase google-cloud-console


    【解决方案1】:

    我可以通过以下代码解决此问题:

    'use strict';
    
    const functions = require('firebase-functions');
    const nodemailer = require('nodemailer');
    const username = functions.config().gmail.email;
    const password = functions.config().gmail.password;
    const mailTransport = nodemailer.createTransport({
     service: 'gmail',
     auth: {
       user: gmailEmail,
       pass: gmailPassword,
      },
    });
    exports.sendPickupRequest = functions.database.ref('/PickupRequests/{pushId}').onCreate(async(snapshot, context) => {
    
      const val = snapshot.val();
      const final = JSON.stringify(val)
      const mailOptions = {
        from: gmailEmail,
        to: "info@abc.com",
        subject: "New Request"
      };
      try {
        await mailTransport.sendMail(mailOptions);
        console.log('email sent');
      } catch(error) {
        console.error('There was an error while sending the email:', error);
      }
      return null;
    });
    

    【讨论】:

    • 请解释真正的问题是什么?
    猜你喜欢
    • 2018-06-25
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    • 2020-01-18
    • 2019-01-20
    相关资源
    最近更新 更多