此功能是通过引用现有数据添加不存在的新数据,并更新存在的数据的功能。它运作良好,但是一个小时后发生gRpc
错误。详细信息如下:
Error: No connection established
at Http2CallStream.<anonymous> (D:\zyleTcpServer\node_modules\@grpc\grpc-js\build\src\call.js:68:41)
at Http2CallStream.emit (events.js:215:7)
at D:\zyleTcpServer\node_modules\@grpc\grpc-js\build\src\call-stream.js:75:22
at processTicksAndRejections (internal/process/task_queues.js:75:11)
---------------------------------------------
at BunWrapper.Readable.on (D:\zyleTcpServer\node_modules\bun\node_modules\readable-stream\lib\_stream_readable.js:729:33)
at D:\zyleTcpServer\node_modules\@google-cloud\firestore\build\src\index.js:920:26
at new Promise (<anonymous>)
at Firestore._initializeStream (D:\zyleTcpServer\node_modules\@google-cloud\firestore\build\src\index.js:881:16)
at D:\zyleTcpServer\node_modules\@google-cloud\firestore\build\src\index.js:1017:28 {
code: 14,
details: 'No connection established',
metadata: Metadata { internalRepr: Map {}, options: {} }
}
这是我的代码
<code>
const docName = `${vin}-${dtc}`; //make doc
const ebsRef = db.collection('events').doc(docName);
await db.runTransaction((t) => t.get(ebsRef)
.then(async (doc) => {
if (!doc.exists) {
return t.set({
startDatetime: firebase.firestore.FieldValue.serverTimestamp(),
endDatetime: firebase.firestore.FieldValue.serverTimestamp(),
description: dtcData.description,
dtcCode: dtc,
eventType: brokenType,
scannerCode: dtcData.scanner,
vin,
});
}
return t.update(ebsRef, {
status: (rawDtc.status === '08' ? 2 : 1),
endDatetime: firebase.firestore.FieldValue.serverTimestamp(),
});
</code>
<br>
我的源代码有问题吗? 我该如何解决..?
答案 0 :(得分:2)
如 Firebase Functions Github 所述,其他人在过去一周中遇到了相同的问题。 这涉及到涉及Firestore的每种函数,并且与将Fire
grpc
更改为grpc-js
有关。如对话线程中所述,您可以尝试一些解决方法:
1-从“ firebase-functions”:“ ^ 3.2.0”更新为“ firebase-functions”:“ ^ 3.3.0”
OR
2-删除您的
/src/functions/node_modules
和/src/functions/package-lock.json
,更新您的依赖项,并将包含/src/functions/package.json
中新依赖项的更改推送到Firebase应用。
最后,您的依存关系应为:
@grpc/grpc-js": "0.6.9"
此对话线程grpc/grpc-node#1027还介绍了更新您的部门的方法,也可能会很有帮助。