解析错误意外的标记“?” 运行 firebase 部署时在 flutter 应用程序上为 1:1 ??{

use*_*595 2 deployment flutter google-cloud-firestore firebase-cli

尝试从根项目进行 firebase 部署时遇到以下消息

\n

错误:...\\firestore.indexes.json 中的解析错误\n1:1 处出现意外标记“\xef\xbf\xbd”\n\xef\xbf\xbd\xef\xbf\xbd{

\n

我有一个 flutter 应用程序,上面还有一个函数文件夹。下面是文件位置:

\n
    \n
  1. 应用程序文件夹\n
      \n
    • 函数\n
        \n
      • .eslintrc.js
      • \n
      • 索引.js
      • \n
      • 包.json
      • \n
      • ETC
      • \n
      \n
    • \n
    • 库\n
        \n
      • 与 flutter 应用程序相关的文件
      • \n
      \n
    • \n
    • 测试\n
        \n
      • 与 flutter 应用程序相关的测试文件
      • \n
      \n
    • \n
    • 网络 firestore.indexes.json
    • \n
    • firebase.json
    • \n
    • ETC
    • \n
    \n
  2. \n
\n

我在新建的电脑上运行 Windows 11(所以可能缺少某些东西?),其他开发人员在 mac 上运行,我已将函数文件夹的 3 个文件的 EOF 序列更改为 LF,我还运行了这两个函数文件夹内的命令

\n

npm install firebase-functions@latest firebase-admin@latest --save

\n

npm install -g firebase-tools

\n

npm 版本是 8.1.2

\n

节点版本是v16.13.1

\n

firestore.indexes.json 是:

\n
{\n  "indexes": [\n    {\n      "collectionGroup": "something1",\n      "queryScope": "COLLECTION",\n      "fields": [\n        {\n          "fieldPath": "created",\n          "order": "DESCENDING"\n        },\n        {\n          "fieldPath": "something2",\n          "order": "DESCENDING"\n        }\n      ]\n    },\n    {\n      "collectionGroup": "something3",\n      "queryScope": "COLLECTION",\n      "fields": [\n        {\n          "fieldPath": "something4",\n          "order": "ASCENDING"\n        },\n        {\n          "fieldPath": "something5",\n          "order": "DESCENDING"\n        }\n      ]\n    }\n  ],\n  "fieldOverrides": []\n}\n\n
Run Code Online (Sandbox Code Playgroud)\n

.elslint.js 是

\n
module.exports = {\n  "root": true,\n  "env": {\n    es6: true,\n    node: true,\n  },\n  "extends": [\n    "eslint:recommended",\n    "google",\n  ],\n  "rules": {\n    quotes: ["error", "double"],\n  },\n  "parserOptions": {\n    "ecmaVersion": 2020,\n  },\n};\n
Run Code Online (Sandbox Code Playgroud)\n

package.json 是

\n
  "name": "functions",\n  "description": "Cloud Functions for Firebase",\n  "scripts": {\n    "lint": "eslint .",\n    "serve": "firebase emulators:start --only functions",\n    "shell": "firebase functions:shell",\n    "start": "npm run shell",\n    "deploy": "firebase deploy --only functions",\n    "logs": "firebase functions:log"\n  },\n  "engines": {\n    "node": "14"\n  },\n  "main": "index.js",\n  "dependencies": {\n    "axios": "^0.24.0",\n    "device-detector-js": "^3.0.0",\n    "firebase": "^9.2.0",\n    "firebase-admin": "^10.0.1",\n    "firebase-functions": "^3.16.0"\n  },\n  "devDependencies": {\n    "eslint": "^8.1.0",\n    "eslint-config-google": "^0.14.0",\n    "firebase-functions-test": "^0.3.3"\n  },\n  "private": true\n}\n
Run Code Online (Sandbox Code Playgroud)\n

请记住,在运行 Windows 10 的旧电脑中,我可以通过仅更改为 LF 并运行上述命令来进行部署。

\n

Ham*_*edi 8

只需尝试创建一个新的文本文件并将生成的文件的内容复制到新文件中。然后覆盖新文件firestore.indexes.json

很明显生成的json文件存在格式问题。