我正在尝试将一个函数部署到firebase,我在部署期间遇到错误
================ console log ================
> eslint . ✔ functions: Finished running predeploy script. i functions: ensuring necessary APIs are enabled... ✔ functions: all necessary APIs are enabled i functions: preparing functions directory for uploading... i functions: packaged functions (56.39 KB) for uploading ✔ functions: functions folder uploaded successfully i functions: updating function sendContactEmailOAuth... ⚠ functions[sendContactEmailOAuth]: Deployment error. Function load error: Code in file index.js can't be loaded. Is there a Syntax error in your code? Detailed stack trace: /user_code/index.js:13 async function getJwt() { ^^^^^^^^
================函数index.js文件================
const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(); const { JWT } = require('google-auth-library/build/src/index'); exports.sendContactEmailOAuth = functions.https.onRequest((req,res) => { const sender_msg = 'just a test' const email = 'contact@lechorodescharentes.org' async function getJwt() { const client = new JWT( functions.config().service_key.client_email,null,functions.config().service_key.private_key,['https://www.googleapis.com/auth/cloud-platform','https://mail.google.com'],); await client.authorize(); const url = `https://www.googleapis.com/dns/v1/projects/${functions.config().service_key.project_id}`; const res = await client.request({ url }); console.log(res.data); } getJwt(); /* send email with nodemailer to be inserted here */ });
================ package.json文件================
{ "name": "functions","description": "Cloud Functions for Firebase","scripts": { "lint": "eslint .","serve": "firebase serve --only functions","shell": "firebase functions:shell","start": "npm run shell","deploy": "firebase deploy --only functions","logs": "firebase functions:log" },"dependencies": { "firebase-admin": "~5.12.0","firebase-functions": "^1.0.2","firebase-tools": "^3.18.4","google-auth-library": "^1.4.0","nodemailer": "^4.6.4" },"devDependencies": { "eslint": "^4.12.0","eslint-plugin-promise": "^3.6.0" },"private": true }
解决方法
截至2018年8月:
云功能现在支持节点8(8.11.1).查看this blog post.
升级到节点8
如this blog post中所述,请按照以下步骤升级到节点8:
>通过npm install升级firebase-functions版本–save firebase-functions @ latest>通过npm update -g firebase-tools升级firebase-tools>在您的/functions/package.json中添加“引擎”:{“node”:“8”}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。