问题描述
我已经创建了 docker 镜像,其中包含我的 angular 应用程序以及 firebase CLI 来运行实时数据库、身份验证和托管模拟器。
所有模拟器都配置为在主机 0.0.0.0
上运行
firebase.json
{
"database": {
"rules": "database.rules.json"
},"hosting": {
"public": "dist/application-dir","ignore": [
"firebase.json","**/.*","**/node_modules/**"
],"rewrites": [
{
"source": "**","destination": "/en/index.html"
}
]
},"emulators": {
"auth": {
"port": 9099,"host": "0.0.0.0"
},"database": {
"port": 9000,"hosting": {
"port": 5000,"ui": {
"port": 4000,"host": "0.0.0.0"
}
}
}
为了连接到这些服务,我使用了 angular/fire lib
我的提供程序配置为在必须连接到模拟器时连接到 localhost
app.module.ts
在 providers
{
provide: AUTH_EMULATOR,useValue: ['localhost',9099]
},{
provide: DATABASE_EMULATOR,9000]
}
问题:
身份验证工作正常,但数据库有一个我目前发现的问题。
为了跟踪订阅的数据,创建了 Web 套接字连接,并且此连接的地址设置为 `ws://0.0.0.0:9000/`,这不是我在我的 `localhost` 中配置它时所预期的app.module.ts`
有趣的事。情况并非总是如此。
有时它工作得很好,但是在关闭 docker 容器然后再次打开它之后
更新
我发现在 localStorage 中,每次 websocket 失败时都会将 `prevIoUs_websocket_failure` 设置为 `true`。
当我删除它并刷新页面时。一切都开始按预期工作不久。在下一次 docker restart 后,这再次失败。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)