javascript - Google Cloud Functions 部署问题

标签 javascript firebase jwt firebase-cloud-messaging google-cloud-functions

Cloud Functions 无法部署一些奇怪的 googleapis npm 模块错误,正在使用官方 google 文档将 FCM 旧版迁移到 V1。

这是我的 package.json:

  "dependencies": {
    "@types/node-cron": "^2.0.0",
    "@types/request-promise": "^4.1.42",
    "cookie-parser": "^1.4.3",
    "cors": "^2.8.5",
    "cron-parser": "^2.7.3",
    "express": "^4.16.4",
    "firebase-admin": "~7.0.0",
    "firebase-functions": "^2.2.0",
    "googleapis": "^40.0.0",
    "request": "^2.88.0",
    "request-promise": "^4.2.2"
  },
  "devDependencies": {
    "tslint": "^5.12.0",
    "typescript": "^3.2.2"
  }

以及导致问题的主要功能的内容:

    return new Promise(function(resolve, reject) {
        const key = require('./service-account.json');
        const SCOPES = ['https://www.googleapis.com/auth/firebase.messaging'];

        const jwtClient = new google.auth.JWT(
            key.client_email,
            undefined,
            key.private_key,
            SCOPES
        );

jwtClient.authorize(function(err: any, tokens: any) {
            if (err) {
                reject(err);
                return;
            }
            resolve(tokens.access_token);
        });
    });

给定的控制台问题正在阻止部署:

Function failed on loading user code. Error message: Code in file lib/index.js can't be loaded.
Is there a syntax error in your code?
Detailed stack trace: /user_code/node_modules/googleapis/build/src/googleapis.js:93
    async discoverAsync(url) {
          ^^^^^^^^^^^^^

SyntaxError: Unexpected identifier
    at createScript (vm.js:56:10)
    at Object.runInThisContext (vm.js:97:10)
    at Module._compile (module.js:549:28)
    at Object.Module._extensions..js (module.js:586:10)
    at Module.load (module.js:494:32)
    at tryModuleLoad (module.js:453:12)
    at Function.Module._load (module.js:445:3)
    at Module.require (module.js:504:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/user_code/node_modules/googleapis/build/src/index.js:19:22)
    at Module._compile (module.js:577:32)
    at Object.Module._extensions..js (module.js:586:10)
    at Module.load (module.js:494:32)
    at tryModuleLoad (module.js:453:12)
    at Function.Module._load (module.js:445:3)
    at Module.require (module.js:504:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/user_code/lib/index.js:16:22)
    at Module._compile (module.js:577:32)
    at Object.Module._extensions..js (module.js:586:10)
    at Module.load (module.js:494:32)
    at tryModuleLoad (module.js:453:12)

最佳答案

该问题是由 Cloud Functions 中的旧版本 Node 引起的,更新到 8 已解决错误。

关于javascript - Google Cloud Functions 部署问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56211931/

相关文章:

authentication - Refresh-Token (JWT) 如何避免中间人攻击?

azure - 为什么 IdToken 是 OIDC 中的 JWT?

javascript - Canvas 对象更新位置并重绘对象

javascript - 动态生成 iframe 导致先前生成的 iframe 意外刷新 - 使用 innerHTML 时

javascript - 在等待来自另一个站点的值时显示或隐藏 div 元素

javascript - 如何正确地对用户注册进行电子邮件验证?

php - 使用 Ajax 和 PHP 进行数据输出

android - Activity 之外的 Firebase 数据库 EventListener

java - 无法从 Firebase 检索数据。应用程序关闭 fragment

REST api - 客户端应如何向其用户资源的请求 URL 提供用户 ID?