繁体   English   中英

firebase 函数部署错误:ERR_PACKAGE_PATH_NOT_EXPORTED

[英]firebase functions deploy error : ERR_PACKAGE_PATH_NOT_EXPORTED

我在 Google Codelab 中关注应用内购买部分,但在我完成所有步骤并最终运行 firebase 部署后,出现了此错误。

我已经阅读了许多关于类似问题的解决方案,例如,删除 node-modules 和 package-lock 文件然后重新安装它们,将 node 版本降级到 14,降级 firebase-admin,firebase-functions ......但没有一个为我工作。

我现在完全绝望了。 请有人帮助我。 我已经用谷歌搜索了将近 72 小时,但一无所获。

这是我运行 firebase deploy 后显示的终端内容。

% firebase deploy

=== Deploying to 'server-259035'...

i  deploying firestore, functions
Running command: npm --prefix "$RESOURCE_DIR" run lint

> functions@ lint /Users/functions
> eslint --ext .js,.ts .

Running command: npm --prefix "$RESOURCE_DIR" run build

> functions@ build /Users/functions
> tsc

✔  functions: Finished running predeploy script.
i  firestore: reading indexes from firestore.indexes.json...
i  cloud.firestore: checking firestore.rules for compilation errors...
✔  cloud.firestore: rules file firestore.rules compiled successfully
i  functions: ensuring required API cloudfunctions.googleapis.com is enabled...
i  functions: ensuring required API cloudbuild.googleapis.com is enabled...
✔  functions: required API cloudfunctions.googleapis.com is enabled
✔  functions: required API cloudbuild.googleapis.com is enabled
i  functions: preparing codebase default for deployment

Error: Failed to load function definition from source: Failed to generate manifest from function source: Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib/firestore' is not defined by "exports" in /Users/functions/node_modules/firebase-admin/package.json

和 package.json 文件。

{
  "name": "functions",
  "scripts": {
    "lint": "eslint --ext .js,.ts .",
    "build": "tsc",
    "watch": "tsc --watch",
    "serve": "firebase emulators:start",
    "shell": "npm run build && firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "engines": {
    "node": "14"
  },
  "main": "lib/index.js",
  "dependencies": {
    "camelcase-keys": "^8.0.0",
    "firebase-admin": "^11.0.1",
    "firebase-functions": "^3.22.0",
    "google-auth-library": "^8.0.2",
    "googleapis": "^105.0.0",
    "jest": "^28.1.3",
    "lodash": "^4.17.21",
    "node-apple-receipt-verify": "^1.12.1"
  },
  "devDependencies": {
    "@types/node-apple-receipt-verify": "^1.7.1",
    "@typescript-eslint/eslint-plugin": "^5.27.0",
    "@typescript-eslint/parser": "^5.27.0",
    "eslint": "^8.16.0",
    "eslint-config-google": "^0.14.0",
    "eslint-plugin-import": "^2.26.0",
    "firebase-functions-test": "^2.3.0",
    "typescript": "^4.7.2"
  },
  "private": true
}

更新我的 package.json 包时,我遇到了同样的问题。 我必须进行以下更改才能修复它:

之前:从“firebase-admin/lib/firestore”导入firestore;

之后:从“firebase-admin”导入 firebaseAdmin; ** 添加前缀 firebaseAdmin。 到所有的firestore引用,例如:firebaseAdmin.firestore.Timestamp;*

我更改了以下文件:

  • 应用商店.purchase-handler.ts
  • google-play.purchase-handler.ts
  • iap.repository.ts

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM