运行 firebase deploy 时在 flutter app 上解析错误 1:1 ��{ 上的意外标记 '��'

Parse error Unexpected token '�' at 1:1 ��{ on flutter app when running firebase deploy

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

错误:分析错误...\firestore.indexes.json 1:1 处的意外标记“�” ��{

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

  1. 应用文件夹
    • 函数
      • .eslintrc.js
      • index.js
      • package.json
      • 等等
      • 相对于 flutter 应用程序的文件
    • 测试
      • 相对于flutter app的测试文件
    • 网络firestore.indexes.json
    • firebase.json
    • 等等

我 运行 宁 windows 11 在一台新组装的电脑上(所以可能缺少某物?),其他开发者 运行宁 mac,我已经在函数文件夹的 3 个文件上将 EOF 序列更改为 LF,我还在函数文件夹中 运行 这两个命令

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

npm install -g firebase-tools

npm 版本为 8.1.2

节点版本是 v16.13.1

firestore.indexes.json 是:

{
  "indexes": [
    {
      "collectionGroup": "something1",
      "queryScope": "COLLECTION",
      "fields": [
        {
          "fieldPath": "created",
          "order": "DESCENDING"
        },
        {
          "fieldPath": "something2",
          "order": "DESCENDING"
        }
      ]
    },
    {
      "collectionGroup": "something3",
      "queryScope": "COLLECTION",
      "fields": [
        {
          "fieldPath": "something4",
          "order": "ASCENDING"
        },
        {
          "fieldPath": "something5",
          "order": "DESCENDING"
        }
      ]
    }
  ],
  "fieldOverrides": []
}

.elslint.js 是

module.exports = {
  "root": true,
  "env": {
    es6: true,
    node: true,
  },
  "extends": [
    "eslint:recommended",
    "google",
  ],
  "rules": {
    quotes: ["error", "double"],
  },
  "parserOptions": {
    "ecmaVersion": 2020,
  },
};

并且package.json是

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

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

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

覆盖新文件

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