Firebase-tools: 在 WSL 模拟器中运行时无法正确检测到缺少“java”可执行文件

创建于 2019-10-10  ·  7评论  ·  资料来源: firebase/firebase-tools

嗨 Firebase 团队,

我没有成功尝试让模拟器在 WSL 中工作。

最近的更新 (https://github.com/firebase/firebase-tools/issues/1458) 修复了port was not active within 3000ms问题。

最终目标是让 console.log() 在命令提示符中显示函数输出。

以下是详细信息:

请勿删除 validate_template=true template_path=.github/ISSUE_TEMPLATE/bug_report.md 感谢您对 Firebase 社区的贡献! md5-0f1f6d7495f991c445263bca56695b0b 是的,我们绝对不完美! 请使用此模板并在打开问题时包含最少的重现。 如果您知道如何解决问题,请创建一个拉取请求,我们很乐意对其进行审核! md5-47c13f787f5fd82d900c7a50e43b625f 太好了,我们很高兴听到我们如何改进我们的产品! 但是,请勿使用此模板提交功能请求。 请将您的功能请求提交至:https://firebase.google.com/support/contact/bugs-features/md5-f2912b50011b616213b4697ac756eb10 我们有很多这样的请求,我们很乐意帮助您,但 GitHub 不是他们的最佳选择将被关闭。 请先看一下指南:https://firebase.google.com/docs/cli/ 如果官方文档没有帮助,请尝试通过我们的官方支持渠道询问:https://firebase.google.com/支持/用于检查社区解决方案或帮助的其他位置: - Stack Overflow:https://stackoverflow.com/ - Firebase Slack 社区:https://firebase.community/ *请避免跨多个渠道重复发布!*

[必需] 环境信息

您使用的是哪个版本的 Firebase CLI(`firebase-tools`)? 请注意,您的问题可能已在最新版本中得到解决。 最新版本可以在 https://github.com/firebase/firebase-tools/releases 找到


火力基地工具: 7.5.0


平台: Windows/WSL

[必需] 测试用例

[必需] 重现步骤

测试命令粘贴。 问题每次都可靠地发生,模拟器无法启动。

[必需] 预期行为


模拟器应该启动,在命令提示符下可以查看 firebase 函数输出。

[必需] 实际行为

firebase-debug.log
[调试] [2019-10-10T21:19:08.690Z] ----------------------------------- ---------------------
[调试] [2019-10-10T21:19:08.693Z] 命令:/home/standard/.nvm/versions/node/v10.16.0/bin/node /home/standard/.nvm/versions/node/v10. 16.0/bin/firebase 模拟器:启动
[调试] [2019-10-10T21:19:08.693Z] CLI 版本:7.5.0
[调试] [2019-10-10T21:19:08.693Z] 平台:linux
[调试] [2019-10-10T21:19:08.693Z] 节点版本:v10.16.0
[调试] [2019-10-10T21:19:09.522Z] 时间:2019年10月11日星期五07:19:08 GMT+1000 (GMT+10:00)
[调试] [2019-10-10T21:19:09.522Z] ----------------------------------- ---------------------
[调试]
[调试] [2019-10-10T21:19:09.537Z] > 命令需要范围:["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https: //www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
[调试] [2019-10-10T21:19:09.539Z] > 通过登录用户授权
[信息] i 启动模拟器:["functions","firestore","hosting"]
[警告] ⚠ 您请求的“节点”版本“8”与您的全球版本“10”不匹配
[信息] ✔ 功能:模拟器启动于http://localhost :5001
[信息] i firestore:为http://localhost :8080 上的所有流量(包括 WebChannel)提供服务
[警告] ⚠ firestore:在单独的端口 (8081) 上支持 WebChannel 已弃用,并将很快消失。 请改用上面的端口。
[调试] [2019-10-10T21:19:09.939Z] 忽略不支持的参数:projectId
[调试] [2019-10-10T21:19:09.939Z] 忽略不支持的参数:auto_download
[调试] [2019-10-10T21:19:09.939Z] 使用命令启动模拟器 firestore {"binary":"java","args":["-Duser.language=en","-jar","/ home/DIR_NAME/standard/.cache/firebase/emulators/cloud-firestore-emulator-v1.9.0.jar","--host","localhost","--port",8080,"--rules", "/mnt/c/Users/Standard/Documents/GitHub/DIR/firestore.rules","--functions_emulator"," localhost:5001 ","--webchannel_port",8081],"optionalArgs":["port" ,"webchannel_port","host","rules","functions_emulator"]}
[信息] i firestore:模拟器登录到 firestore-debug.log
[信息] i 关闭模拟器。
[信息] i 停止功能模拟器
[调试] [2019-10-10T21:19:09.999Z] 错误:spawn java EACCES
在 Process.ChildProcess._handle.onexit (internal/child_process.js:240:19)
在 onErrorNT (internal/child_process.js:415:16)
在 process._tickCallback (internal/process/next_tick.js:63:19)
[错误]
[错误] 错误:发生意外错误。

此外,运行 firebase 服务:
➜ DIR_NAMEgit:(master) ✗ firebase serve --only 功能 [11/10/19| 上午 8 点 19 分]
⚠ 您请求的“节点”版本“8”与您的全球版本“10”不匹配
✔ 功能:模拟器启动于http://localhost :5000
i 函数:正在观看 Cloud Functions 的“/mnt/c/Users/Standard/Documents/GitHub/DIR_NAME/functions”...


git:(master) ✗ firebase模拟器:start --debug [11/10/19| 上午 8:30]
[2019-10-10T21:31:51.586Z] -------------------------------------- --------------------------------
[2019-10-10T21:31:51.594Z] 命令:/home/standard/.nvm/versions/node/v10.16.0/bin/node /home/standard/.nvm/versions/node/v10.16.0/bin /firebase模拟器:启动--debug
[2019-10-10T21:31:51.598Z] CLI 版本:7.5.0
[2019-10-10T21:31:51.599Z] 平台:linux
[2019-10-10T21:31:51.600Z] 节点版本:v10.16.0
[2019-10-10T21:31:52.440Z] 时间:2019 年 10 月 11 日星期五 07:31:51 GMT+1000 (GMT+10:00)
[2019-10-10T21:31:52.444Z] -------------------------------------- --------------------------------

[2019-10-10T21:31:52.464Z] > 命令需要范围:["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www .googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
[2019-10-10T21:31:52.472Z] > 通过登录用户授权
i 启动模拟器:["functions","firestore","hosting"]
⚠ 您请求的“节点”版本“8”与您的全球版本“10”不匹配
✔ 功能:模拟器启动于http://localhost :5001
i firestore:在http://localhost :8080 上提供所有流量(包括 WebChannel)
⚠ firestore:在单独的端口 (8081) 上支持 WebChannel 已弃用,并将很快消失。 请改用上面的端口。
[2019-10-10T21:31:52.848Z] 忽略不支持的参数:projectId
[2019-10-10T21:31:52.850Z] 忽略不支持的参数:auto_download
[2019-10-10T21:31:52.851Z] 使用命令 {"binary":"java","args":["-Duser.language=en","-jar","/home/standard 启动模拟器 firestore /.cache/firebase/emulators/cloud-firestore-emulator-v1.9.0.jar","--host","localhost","--port",8080,"--rules","/mnt/c /Users/Standard/Documents/GitHub/DIR_NAME/firestore.rules","--functions_emulator"," localhost:5001 ","--webchannel_port",8081],"optionalArgs":["port","webchannel_port", "host","rules","functions_emulator"]}
i firestore:模拟器登录到 firestore-debug.log
i 关闭模拟器。
i 停止功能模拟器
[2019-10-10T21:31:52.924Z] 错误:生成 java EACCES
在 Process.ChildProcess._handle.onexit (internal/child_process.js:240:19)
在 onErrorNT (internal/child_process.js:415:16)
在 process._tickCallback (internal/process/next_tick.js:63:19)

错误:发生意外错误。

emulator-suite firestore bug

所有7条评论

此问题没有模板所需的所有信息。 您好像忘记填写某些部分了。 请使用更多信息更新问题。

@barnu5你安装了java吗? 你能运行java -version并告诉我你有什么版本吗?

感谢@samtstern的所有帮助。

我现在已经单独安装了 java,如下: https :

我现在在命令提示符中看到托管日志记录,例如:`127.0.0.1 - - [10/Oct/2019:22:14:40 +0000] "GET /static/media/image.f098d4b4.svg HTTP/1.1" 200 1783 " http://localhost :5000/app" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
(KHTML,如 Gecko)Chrome/77.0.3865.90 Safari/537.36"

你能告诉我,我怎样才能在控制台中看到 firebase 函数的日志输出?

@barnu5如果您的函数调用console.log()您应该在函数运行时在控制台中看到该输出。 如果您没有看到,请为此提交一个新问题。

我重命名了这个问题,因为我们应该在你没有java时告诉你,但显然我们没有。

@samtstern在这种情况下,您刚刚关闭了另一个! 我会为日志提交一个新问题!

我想让它保持打开状态,以便我们可以更好地检测到这一点。

此页面是否有帮助?
0 / 5 - 0 等级