NextJs向Firestore写入数据触发Invalid Resource Field Value错误
问题解决:Firestore写入时提示「Invalid resource field value in the request」
问题根源
从错误日志里的请求URL(https://firestore.googleapis.com/v1/projects//databases/(default)/documents:commit)和文档路径(projects//databases/(default)/documents/cities/LA)可以看出,Firebase初始化时缺失了项目ID,导致请求无法定位到正确的Firestore数据库实例。
解决步骤
检查Firebase初始化配置
确保初始化Firebase应用时,配置对象包含完整且正确的projectId字段。示例初始化代码:import { initializeApp } from "firebase/app"; import { getFirestore } from "firebase/firestore"; // 或firebase/firestore/lite,根据你的使用版本 // 从Firebase控制台复制的完整Web应用配置 const firebaseConfig = { apiKey: "你的API_KEY", authDomain: "你的_AUTH_DOMAIN", projectId: "你的_PROJECT_ID", // 此字段必须存在且不为空 storageBucket: "你的_STORAGE_BUCKET", messagingSenderId: "你的_MESSAGING_SENDER_ID", appId: "你的_APP_ID" }; const app = initializeApp(firebaseConfig); const db = getFirestore(app);确认自定义初始化函数的正确性
你封装的initFirebaseApp()函数中,必须传入包含projectId的完整配置,不能遗漏该字段。如果之前的配置里漏掉了projectId,就会导致请求时项目ID为空,出现projects//的异常格式。验证配置来源
直接从Firebase控制台的「项目设置」→「添加应用」→「Web应用」中复制生成的配置代码,避免手动输入出错。
补充说明
读取数据正常可能是因为读取请求的校验逻辑或缓存机制允许临时缺失项目ID,但写入操作必须明确指定正确的项目ID才能完成数据库定位,因此会触发错误。
内容的提问来源于stack exchange,提问作者pann
相关产品推荐
相关产品推荐

