在本地主机上使用“firebase服务”自动重新连接

在本地主机上使用“firebase服务”自动重新连接,firebase,Firebase,我正在使用firebase-service在我的计算机上主持一个firebase项目。当我的网络断开时,我得到下面的错误,程序退出。是否有启用自动重新连接或以某种方式手动捕获错误并重新连接的--选项?我希望应用程序继续尝试连接,直到我的internet恢复联机 > throw er; // Unhandled 'error' event > ^ > > Error: 14 UNAVAILABLE: Name resolution faile

我正在使用
firebase-service
在我的计算机上主持一个firebase项目。当我的网络断开时,我得到下面的错误,程序退出。是否有启用自动重新连接或以某种方式手动捕获错误并重新连接的
--选项
?我希望应用程序继续尝试连接,直到我的internet恢复联机

>        throw er; // Unhandled 'error' event
>        ^
> 
>  Error: 14 UNAVAILABLE: Name resolution failed for target dns:firestore.googleapis.com:443
>      at Object.callErrorFromStatus (C:\Users\Tower\IdeaProjects\team-up-server\functions\node_modules\@grpc\grpc-js\build\src\call.js:30:26)
>      at Object.onReceiveStatus (C:\Users\Tower\IdeaProjects\team-up-server\functions\node_modules\@grpc\grpc-js\build\src\client.js:328:49)
>      at Object.onReceiveStatus (C:\Users\Tower\IdeaProjects\team-up-server\functions\node_modules\@grpc\grpc-js\build\src\client-interceptors.js:304:181)
>      at Http2CallStream.outputStatus (C:\Users\Tower\IdeaProjects\team-up-server\functions\node_modules\@grpc\grpc-js\build\src\call-stream.js:116:74)
>      at Http2CallStream.maybeOutputStatus (C:\Users\Tower\IdeaProjects\team-up-server\functions\node_modules\@grpc\grpc-js\build\src\call-stream.js:155:22)
>      at Http2CallStream.endCall (C:\Users\Tower\IdeaProjects\team-up-server\functions\node_modules\@grpc\grpc-js\build\src\call-stream.js:141:18)
>      at Http2CallStream.cancelWithStatus (C:\Users\Tower\IdeaProjects\team-up-server\functions\node_modules\@grpc\grpc-js\build\src\call-stream.js:450:14)
>      at ChannelImplementation.tryPick (C:\Users\Tower\IdeaProjects\team-up-server\functions\node_modules\@grpc\grpc-js\build\src\channel.js:237:32)
>      at ChannelImplementation._startCallStream (C:\Users\Tower\IdeaProjects\team-up-server\functions\node_modules\@grpc\grpc-js\build\src\channel.js:267:14)
>      at Http2CallStream.start (C:\Users\Tower\IdeaProjects\team-up-server\functions\node_modules\@grpc\grpc-js\build\src\call-stream.js:428:22)
>  Emitted 'error' event on ClientReadableStreamImpl instance at:
>      at Object.onReceiveStatus (C:\Users\Tower\IdeaProjects\team-up-server\functions\node_modules\@grpc\grpc-js\build\src\client.js:328:28)
>      at Object.onReceiveStatus (C:\Users\Tower\IdeaProjects\team-up-server\functions\node_modules\@grpc\grpc-js\build\src\client-interceptors.js:304:181)
>      [... lines matching original stack trace ...]
>      at Http2CallStream.start (C:\Users\Tower\IdeaProjects\team-up-server\functions\node_modules\@grpc\grpc-js\build\src\call-stream.js:428:22)
>      at BaseStreamingInterceptingCall.start (C:\Users\Tower\IdeaProjects\team-up-server\functions\node_modules\@grpc\grpc-js\build\src\client-interceptors.js:276:1
9) {
>    code: 14,
>    details: 'Name resolution failed for target dns:firestore.googleapis.com:443',
>    metadata: Metadata { internalRepr: Map {}, options: {} }
>  }

firebase Service
已弃用

尝试
firebase模拟器:启动
;我在使用它时没有遇到任何开/关/在线问题

文件:


但是,请注意错误消息中的错误与您正在进行的GoogleAPI调用有关

如果您调用的是在线API而不是模拟API,则您的应用程序本身需要能够设置为重试或处理失败的调用


firebase的某些方面确实可以在本地进行模拟;同样,请参阅上面链接的文档。

这实际上并没有解决问题。我认为是的,因为它模拟了本地主机上的数据库。当我这样运行它时,
firebase仿真器:start——仅限函数
在没有互联网的情况下仍会崩溃。执行
firestore.collection(…).then().catch()
有一个catch,但它仍在崩溃。请参阅关于外部API调用的回答的第二部分当我像这样调用函数
firestore().collection(…).get().then().catch()
时调用了API。最后的
.catch()
应该处理错误,但它仍然抛出错误。我还尝试将整个过程包装在一个try/catch块中,但仍然退出了程序。