簡體   English   中英

Firebase 函數:變量未定義 onCall

[英]Firebase Functions: Variables undefined onCall

我正在做一個項目,我嘗試將變量從我的 Angular 前端傳遞到我的 Firebase 后端。 但是我在下面的代碼中遇到了一個問題。 我正在嘗試使用存儲在數據數組中的變量,但在 Firebase 控制台中,它們顯示為未定義。 我試過制作一個nodeJS項目並運行這個代碼,它似乎工作正常......可能是什么問題?

PS 我也嘗試過傳遞 object ,但結果是一樣的。

這是我的函數文件夾的 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);
  });

  });

傳遞給可調用雲函數的參數是命名的,而不是排序的。 因此,除非您以某種方式將參數命名為01 ,否則您的查找不太可能有效。

我建議檢查調用此 Cloud Function 的代碼,並在此處也使用該代碼中使用的名稱。 如果您在調用代碼中使用了名稱nameemail ,則 Cloud Function 將如下所示:

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

如果您想在不查看調用它的代碼的情況下驗證將哪些參數傳遞給雲 Function,您可以使用以下命令記錄數據 object:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM