gpt4 book ai didi

javascript - onCall 云函数返回 'Data cannot be encoded in JSON. NAN'

转载 作者:行者123 更新时间:2023-12-05 00:37:26 25 4
gpt4 key购买 nike

我有一个看起来像这样的 onCall 函数。

exports.getResults = functions.https.onCall((data, context) => {
const admin = context.auth.token.admin
const uniqueId = context.auth.uid
const doc = db.collection('collection').doc(data.docId)

return doc
.get()
.then(querySnapshot => {
return querySnapshot.docs.map(doc => {
const doc = doc.data()
const collectionDoc = {
docValues
}

return collectionDoc
})
})

我的 console.log 将我请求的文档打印为对象,所以我不确定问题是什么?

最佳答案

我了解到您在 Firebase 函数日志中出现此错误。这意味着您正在返回 NaN物体的某处。根据this文章:

To send data back to the client, return data that can be JSON encoded.


它可能取决于实现,但是这里 NaN不能是 JSON 编码的。 (在 Wikipedia - 数据类型和语法 - 数字中找到了一些相关信息)。
您可以通过部署未初始化变量的函数来轻松复制此问题:
exports.getResults = functions.https.onCall(() => {
var number;
var value = number+1;
return {
value,
"text": "test",
};
})
在示例中,我添加了 undefined编号结果将是 NaN .当然可能还有其他函数会返回 NaN以及。无论如何,如果您部署上面的示例,它将记录相同的错误“数据无法以 JSON.NaN 编码”。我认为这在代码中最容易被忽略。
我认为您必须仔细检查您返回的所有数据。

关于javascript - onCall 云函数返回 'Data cannot be encoded in JSON. NAN',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63664435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com