Firebase Admin Node httpAgent:按服务划分的代理覆盖范围
在假定所有 SDK 流量都使用同一代理之前,先确认哪些 Firebase Admin Node 操作会消耗已配置的 HTTP agent。
认证调用可以通过代理正常工作,但数据库连接却失败了。在 Firebase 应用中,这可能是传输层的差异,而不是时断时续的代理。
Admin Node SDK 的 httpAgent 应用选项适用于发起 REST 调用的服务,包括 Auth 和 Messaging。其文档记载的范围不包括 Realtime Database 和 Firestore。凭据对象也通过相应的凭据工厂方法拥有自己的 agent 配置。
| 失败的操作 | 需要检查的配置 |
|---|---|
| Admin REST 服务调用 | 应用的 HTTP agent |
| 获取凭据令牌 | 凭据对象的 HTTP 配置 |
| 数据库连接 | 数据库客户端自身的传输支持 |
正因如此,在初始化时添加 agent 并不能保证之后的每个连接都走同一条路径。在更改已经为另一服务正常工作的配置之前,请先记录失败的服务和目的地。
旧有的讨论还会把 Firebase 命令行工具与应用 SDK 混为一谈。为读取 http_proxy 而做的 CLI 修复,并不能证明 Node 进程中的数据库客户端使用了同一选项。
请为你真正需要的传输方式使用受支持的配置接口。给嵌套的 WebSocket 依赖打补丁,可能看起来只影响一个连接,而另一条路径保持不变,并且会让未来的依赖更新更难推理。