当前位置: 首页 > 知识库问答 >
问题:

Firebase Cloud函数返回内部错误

米元凯
2023-03-14

在下面的代码中,当我试图将数据插入firebase Firestore时,数据被插入,但在返回promise时,它将错误作为内部错误返回。Hera是控制台记录的错误

Error: INTERNAL
at new f (error.ts:66)
at y (error.ts:175)
at O.<anonymous> (service.ts:231)
at tslib.es6.js:100
at Object.next (tslib.es6.js:81)
at r (tslib.es6.js:71) "INTERNAL"
exports.addNewBook = functions.https.onCall((data, context) => {
    return admin.firestore().collection('books').add(data.book)
        .then((doc) => { return doc })
        .catch((error) => { return error });
});
const addNewBooks = (formData) => {
   bookData = {
      no: formData.bookNo.value,
      name: formData.bookName.value,
      author: formData.bookAuthor.value,
      publisher: formData.bookPublisher.value,
      librarian: formData.librarianName.value
   }
   console.log(bookData);
   const addBooksToDb = firebase.functions().httpsCallable('addNewBook');
   addBooksToDb({
         book: bookData
      })
      .then(doc => {
         console.log(doc, doc.id)
      })
      .catch(error => {
         console.log(error, error.message)
      });
}


$("#addBookModalForm").submit(function(e) {
   e.preventDefault();
   addNewBooks(this);
   this.reset();
});

在index.js中的console.log()上登录云函数时出错

    addNewBook
    Unhandled error RangeError: Maximum call stack size exceeded 
        at isArrayLike (/srv/node_modules/lodash/lodash.js:11333:31)
        at keys (/srv/node_modules/lodash/lodash.js:13307:14)
        at /srv/node_modules/lodash/lodash.js:4900:21
        at baseForOwn (/srv/node_modules/lodash/lodash.js:2990:24)
        at Function.mapValues (/srv/node_modules/lodash/lodash.js:13400:7)
        at encode (/srv/node_modules/firebase-functions/lib/providers/https.js:179:18)
        at /srv/node_modules/lodash/lodash.js:13401:38
        at /srv/node_modules/lodash/lodash.js:4905:15
        at baseForOwn (/srv/node_modules/lodash/lodash.js:2990:24)
        at Function.mapValues (/srv/node_modules/lodash/lodash.js:13400:7)

引发内部错误的原因是什么

共有1个答案

柳胡媚
2023-03-14

add()返回的promise可能被拒绝并生成了错误。如果您不小心向客户端发送特定的已知响应,您可能会在客户端上看到错误。

由于我们无法看到确切的输入和输出(这里只是显示变量),以及日志输出,因此我们无法确切地知道发生了什么,因此必须对其进行调试以找出哪里出了问题。

 类似资料:
  • 问题内容: 如何从函数内部返回值? 这是我的基本设置: 问题答案: 使用回调函数,这是JavaScript的方式:

  • 从数据库中提取博客。 为什么这里的blogContent在函数的上下文中是全局的,而我们正在内部更改它,所以它应该返回值,有人能解释为什么会这样吗? 有没有不使用promise/async/await的方法>>>有人给了我答案 我如何从异步调用返回响应? 但这一点我不知道,最主要的是我不知道Ajax。

  • 问题内容: 当尝试使用str_to_date()将我的Estimates表中的字符串日期值的列CreatedDate转换为mySQL日期格式时,我一直收到错误消息。我的数据列包含m/ d / yy格式的日期(例如:1/26/16或3/3/16)。 我跑了这个查询: mySQL返回此错误消息: 我的查询出了什么问题? 问题答案: 清理数据的通常策略如下: 然后,当您确信一切都正确转换后: 适当字段的

  • 问题内容: 我有一个JavaScript函数,可将数据发布到验证脚本并从那里获取值。post请求上的回调函数返回一个布尔值,而我试图获取 整个 函数以返回该布尔值。现在,回调函数返回正确的值,但是函数本身不返回任何值。这是代码: 我意识到这有点像“同步”调用,而这并不是AJAX的目的,但是我已经在validate.php(数据库调用等)中拥有许多我无法在Javascript中实现的功能,我看到了线

  • 我正在尝试使用Mongo和node/express JS的这个map函数构建一个对象数组。由于某种原因,当我运行控制台时,数组返回空。在map函数外部记录日志,但在map函数内部,它显示了每次迭代生成的数组。 为什么会发生这种行为?

  • 从昨天晚上开始,我的“Express-Checkout API”出现了问题。 每次如果我调用uri https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=ec-0w349....... 请联系服务器管理员webmaster@paypal.com,并通知他们错误发生的时间,以及您所做的可能导致错误的任何事情