Firebase功能不起作用-无法仿真应用

时间:2018-12-29 08:34:14

标签: firebase google-cloud-functions

当我尝试提供Firebase云功能时,会收到此消息。 enter image description here

我的firebase.json文件在这里

{
  "hosting": {
    "public": "public",
    "rewrites":[{
        "source":"/hello",
        "function":"app"
    }]
  }
}

函数文件夹中的index.js文件

const functions = require('firebase-functions');
const express = require('express');

const app = express();


app.get('/hello', (request, response)=>{
        response.send("Hello Working");
});

exports.app = functions.https.onRequest(app);

这是调试日志,显示了我遇到的错误。

Error: ENOENT: no such file or directory, chmod 'C:\Program Files\Java\jre1.8.0_171\bin;C:\Program Files\Java\jdk1.8.0_171\bin;C:\Users\iambe\AppData\Local\Temp;\tmp-47763kzGi6NyBhNP.zip'
    at Error (native)
    at Object.fs.chmodSync (fs.js:1169:18)
    at Object.writeFileTo (C:\Users\iambe\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\adm-zip\util\utils.js:111:20)
    at Object.writeZip (C:\Users\iambe\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\adm-zip\adm-zip.js:534:20)
    at client.generateUploadUrl.then.then (C:\Users\iambe\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\@google-cloud\functions-emulator\src\cli\controller.js:168:13)
    at process._tickDomainCallback (internal/process/next_tick.js:135:7)
[warn] !  functions: Failed to emulate app
[info] i  functions: No HTTPS functions found. Use firebase functions:shell if you would like to emulate other types of functions.

是否有人遇到类似问题并解决了?我尝试搜索到处都没有帮助。

1 个答案:

答案 0 :(得分:0)

最后我找到了解决方案。这里的问题不在于节点版本,而在于临时目录位置。 在错误消息中,我们可以看到它说没有这样的文件或目录,此后我们可以看到它正在检查文件的路径。

C:\Program Files\Java\jdk1.8.0_171\bin;C:\Users\iambe\AppData\Local\Temp

所以这里的问题是我们也为nodejs设置了一个临时目录。但是由于系统的temp目录的设置,存在一些问题并且节点变得混乱。它不是在查看nodejs临时目录,而是在Windows temp目录。

这是问题的解释。现在让我告诉您解决方案。我所做的是从环境变量中删除了TEMP变量。

enter image description here

您已完成。希望这会有所帮助。

但是我不确定为什么会这样,因为在某些具有此temp目录的计算机中也没有问题。但是在某些计算机中,我们会遇到此问题。如果有人有确切原因,请告诉我。