首页 > 解决方案 > 突然,Firebase 函数不会在一个函数中读取 req.body (但在另一个函数中有效)

问题描述

我有 2 个具有相同代码的 Firebase 函数,使用 npm request 和 cors 在开始时获取 req.body,如下所示:

exports.state1 = functions.https.onRequest((req, res) => {
  // [END trigger]
  // [START sendError]
  // Forbidding PUT requests.
  if (req.method === 'PUT' || req.method === 'GET') {
    return res.status(403).send('Forbidden!');
  }
  // [END sendError]

  // [START usingMiddleware]
  // Enable CORS using the `cors` express middleware.
  return cors(req, res, () => {
    // [END usingMiddleware]
    // Reading date format from URL query parameter.
    // [START readQueryParam]
    let format = req.query.format;
    // [END readQueryParam]
    // Reading date format from request body query parameter
    if (!format) {
      // [START readBodyParam]
      format = req.body.format;
      // [END readBodyParam]
    }
const frompage1 = req.body;


console.log('Sending Formatted data:', frompage1);

var authtoken = frompage1.authtoken.toString();

//some code

    }); //end cors

    }; //end function

然后我阅读了 authtoken 并继续。

在这两个函数中,“发送格式化数据”的输出都有效:

Sending Formatted data: { Authorization: '444444******',
  subscriberID: 1860******150,
  dialogID: '2020-05-15 13:26:35.8',
  state: 'state2',
  ButtonOrder: 2 }

在一个函数中,它还可以使用以下代码隔离 authtoken:

var authtoken = frompage1.authtoken.toString();

但是相同的代码在 1 小时前停止在类似的函数中工作,尽管它在此之前一直在工作。

有谁知道为什么我现在收到此错误?

TypeError: Cannot read property 'toString' of undefined at cors

标签: javascriptfirebasegoogle-cloud-functions

解决方案


推荐阅读