添加Firebase Functions后Angular部署失败:firestore.indexes.json缺失
解决Firebase部署Angular项目时找不到
firestore.indexes.json的问题 这个问题的核心原因很明确:当你执行不带参数的firebase deploy时,Firebase CLI会尝试部署firebase.json里配置的所有服务,包括Firestore,但你的项目根目录下缺少配置中指定的firestore.indexes.json文件;而单独部署functions时,CLI只会处理functions相关的配置,所以不会触发这个错误。下面是几种可行的解决方法:
方法1:创建空的Firestore索引文件
如果你的项目暂时不需要自定义Firestore索引,直接在项目根目录(和firebase.json同层级)创建一个空的firestore.indexes.json文件即可,内容如下:
{ "indexes": [], "fieldOverrides": [] }
这样Firebase CLI部署时就会识别到这个文件,不会再抛出找不到文件的错误。
方法2:修改firebase.json移除索引配置
如果你根本不需要使用Firestore服务,或者暂时不需要配置索引,可以修改firebase.json,删除或注释掉Firestore部分的indexes配置项:
{ "hosting": { "public": "public", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**", "**/functions/**" ], "rewrites": [ { "source": "**", "destination": "/index.html" } ] }, "firestore": { "rules": "firestore.rules" // 注释或删除这一行:"indexes": "firestore.indexes.json" }, "functions": { "predeploy": [ "npm --prefix \"$RESOURCE_DIR\" run lint", "npm --prefix \"$RESOURCE_DIR\" run build" ] } }
后续如果需要添加Firestore索引,你可以通过Firebase控制台创建索引后,执行firebase firestore:indexes > firestore.indexes.json命令,将索引配置导出到项目根目录,再把indexes配置加回来即可。
方法3:指定部署的服务范围
如果你不想修改配置或创建文件,也可以每次部署时明确指定只部署hosting和functions,跳过Firestore的部署检查:
firebase deploy --only hosting,functions
内容的提问来源于stack exchange,提问作者Peyman Kheiri
相关产品推荐
相关产品推荐

