Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular Firebase函数:调用时未定义变量_Angular_Typescript_Firebase_Web Services_Google Cloud Functions - Fatal编程技术网

Angular Firebase函数:调用时未定义变量

Angular Firebase函数:调用时未定义变量,angular,typescript,firebase,web-services,google-cloud-functions,Angular,Typescript,Firebase,Web Services,Google Cloud Functions,我正在进行一个项目,在这个项目中,我试图将变量从角度前端传递到Firebase后端。但是,我在下面的代码中遇到了一个问题。我试图使用存储在数据数组中的变量,但在Firebase控制台中,这些变量是未定义的。我试过做一个nodeJS项目并运行这段代码,它似乎工作得很好。。。问题是什么 另外,我也试过传递一个物体,但结果是一样的 这是“我的函数”文件夹的index.ts: import * as nodemailer from 'nodemailer'; // // Start writing

我正在进行一个项目,在这个项目中,我试图将变量从角度前端传递到Firebase后端。但是,我在下面的代码中遇到了一个问题。我试图使用存储在数据数组中的变量,但在Firebase控制台中,这些变量是未定义的。我试过做一个nodeJS项目并运行这段代码,它似乎工作得很好。。。问题是什么

另外,我也试过传递一个物体,但结果是一样的

这是“我的函数”文件夹的index.ts:

import * as nodemailer from 'nodemailer';


// // Start writing Firebase Functions
// // https://firebase.google.com/docs/functions/typescript
//
export const sendMail = functions.https.onCall((data) => {

    

    console.log(data.text);
    const name = data[0];
    const email = data[1];
    const phoneNumber = data[2];
    const title = data[3];
    const body = data[4];

   const transporter = nodemailer.createTransport({
      host: "smtp.gmail.com",
      port: 465,
      secure: true, 
      auth: {
          user: 'xxxxxxx',
          pass: 'xxxxxxxx',
      },
  });

  transporter.sendMail({
      from: 'xxxxxxx',
      to: "xxxxxxxx",
      subject: title,
      html: "<b>Message send by:<br></b>" + email + "<br><br>" + body,
  }).catch((_e: Error) => {
    const e:Error = _e
    console.log(e);
  });

  });
import*作为nodemailer从'nodemailer'导入;
////开始编写Firebase函数
// // https://firebase.google.com/docs/functions/typescript
//
export const sendMail=functions.https.onCall((数据)=>{
console.log(data.text);
常量名称=数据[0];
const email=数据[1];
const phoneNumber=数据[2];
常数标题=数据[3];
const body=数据[4];
const transporter=nodemailer.createTransport({
主机:“smtp.gmail.com”,
港口:465,
安全:是的,
认证:{
用户:“xxxxxxx”,
通行证:'xxxxxxxx',
},
});
发送邮件({
发件人:'xxxxxxx',
致:“xxxxxxxx”,
主题:标题,,
html:“邮件发送人:
”+电子邮件+“

”+正文, }).catch(((e:Error)=>{ 常数e:错误=\u e 控制台日志(e); }); });
传递给可调用云函数的参数是命名的,而不是排序的。因此,除非您以某种方式将参数命名为
0
1
,否则您的查找不太可能有效

我建议检查调用此云函数的代码,并在此处使用该代码中使用的名称。如果您在调用代码中使用了名称
name
email
,则云函数如下所示:

const name = data.name;
const email = data.email;

如果您想在不查看调用云函数的代码的情况下验证传递给云函数的参数,可以使用以下方法记录数据对象:

console.log(JSON.stringify(data));

我尝试使用对象而不是数组,但结果似乎是一样的。谢谢您的快速回复。您是否尝试过使用
控制台.log
?它显示了什么?另外:因为这取决于调用代码如何传递参数,所以最好也能看到该调用的最小代码。我做了upvote,但我需要更多的rep来这样做。最终我放弃了,寻找一个解决办法。谢谢你的帮助!