在下面的代码中,当我试图将数据插入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)
引发内部错误的原因是什么
从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,并通知他们错误发生的时间,以及您所做的可能导致错误的任何事情