Firestore 在完全定义的 JSON 中发现未定义的值,键甚至不存在
Firestore finds undefined value in fully defined JSON, key does not even exist
我正在尝试将 JSON 对象上传到 Google Firestore。
将对象设置为 Firestore 文档时,我的代码抛出以下错误:
Error: Value for argument "data" is not a valid Firestore document.
Cannot use "undefined" as a Firestore value
(found in field audit.`20`.requests.`0`.lrEndTimeDeltaMs).
现在我做的第一件事是在上传之前记录对象以检查未定义的值:
console.log(JSON.stringify(resultsToUpload));
return database
.collection("foo1")
.doc("bar1")
.set(resultsToUpload);
不仅对象中定义了所有值,而且提到的字段 audit.`20`.requests.`0`.lrEndTimeDeltaMs
甚至不存在:
resultsToUpload = {
"audit":{
"20":{
"ronaldScore":3,
"id":"network-requests",
"requests":[
{
"url":"https://www.example.com/",
"startTime":0,
"endTime":62.16699999640696,
"transferSize":15794,
"resourceSize":78243,
"statusCode":200,
"mimeType":"text/html",
"resourceType":"Document"
}
]
}
}
}
数据来自 Google Lighthouse 审计。
计算字符串化 JSON 对象的 UTF-8 字符串长度得出大小为 30 MB。
1)所有的值都定义了(有些为null,应该没有问题)。
2) JSON.
中甚至不存在上述字段
我的问题是:这怎么会发生?一个字段怎么会出现呢?
另外:我该如何解决这个问题?
在 Javascript-Object 上使用 JSON.stringify 隐藏所有 "undefined" 值(以及它们的键),然后将剩下的字符串化。
那是因为JSON没有"undefined"这样的东西。
因此日志显示了完全定义的 JSON,即使实际 JS-Object 确实包含 "undefined" 值。
我正在尝试将 JSON 对象上传到 Google Firestore。
将对象设置为 Firestore 文档时,我的代码抛出以下错误:
Error: Value for argument "data" is not a valid Firestore document.
Cannot use "undefined" as a Firestore value
(found in field audit.`20`.requests.`0`.lrEndTimeDeltaMs).
现在我做的第一件事是在上传之前记录对象以检查未定义的值:
console.log(JSON.stringify(resultsToUpload));
return database
.collection("foo1")
.doc("bar1")
.set(resultsToUpload);
不仅对象中定义了所有值,而且提到的字段 audit.`20`.requests.`0`.lrEndTimeDeltaMs
甚至不存在:
resultsToUpload = {
"audit":{
"20":{
"ronaldScore":3,
"id":"network-requests",
"requests":[
{
"url":"https://www.example.com/",
"startTime":0,
"endTime":62.16699999640696,
"transferSize":15794,
"resourceSize":78243,
"statusCode":200,
"mimeType":"text/html",
"resourceType":"Document"
}
]
}
}
}
数据来自 Google Lighthouse 审计。
计算字符串化 JSON 对象的 UTF-8 字符串长度得出大小为 30 MB。
1)所有的值都定义了(有些为null,应该没有问题)。
2) JSON.
中甚至不存在上述字段我的问题是:这怎么会发生?一个字段怎么会出现呢? 另外:我该如何解决这个问题?
在 Javascript-Object 上使用 JSON.stringify 隐藏所有 "undefined" 值(以及它们的键),然后将剩下的字符串化。
那是因为JSON没有"undefined"这样的东西。
因此日志显示了完全定义的 JSON,即使实际 JS-Object 确实包含 "undefined" 值。