
使用 @google-cloud/firestore SDK 时,需通过 databaseId(而非 database)参数显式指定非默认数据库名称,否则将自动回退至 (default) 数据库。
使用 `@google-cloud/firestore` sdk 时,需通过 `databaseid`(而非 `database`)参数显式指定非默认数据库名称,否则将自动回退至 `(default)` 数据库。
在 Google Cloud Platform 环境中(例如 Cloud Functions),若需访问同一 GCP 项目下的非默认 Firestore 数据库(如 my-db),必须正确传入 databaseId 字段。早期版本文档或社区示例中常误用 database 键名,但根据 @google-cloud/firestore 的 TypeScript 类型定义(自 v4.15.0 起正式支持多数据库),实际生效的配置项是 databaseId。
✅ 正确写法如下:
const { Firestore } = require('@google-cloud/firestore');
const firestore = new Firestore({
projectId: 'my-gcp-project',
databaseId: 'my-db' // ✅ 关键:使用 databaseId,不是 database
});⚠️ 注意事项:
-
databaseId必须为纯字符串,不包含路径前缀(如/databases/...),SDK 会自动拼接完整资源路径; - 非默认数据库需已在 Firebase Console 或 gcloud CLI 中手动创建并启用,仅设置
databaseId不会自动创建; - 当前
databaseId仅支持在 Node.js 环境(服务端)使用;Web 客户端 SDK(firebase/firestore)暂不支持多数据库,仍仅限(default); - 若未指定
databaseId,默认值为'(default)',即等效于databaseId: '(default)'; - 确保运行环境的服务账号具备该数据库的
firestore.databases.get和对应集合的读写权限(如roles/firestore.databaseUser)。
? 小技巧:可通过以下方式验证当前实例连接的数据库:
立即学习“Java免费学习笔记(深入)”;
console.log('Connected to database:', firestore.formattedName_);
// 输出示例:projects/my-gcp-project/databases/my-db总结:连接非默认 Firestore 数据库的关键在于——严格使用 databaseId 字段,并确认数据库已存在且权限就绪。忽略此细节将导致静默连接至默认库,引发数据写入错位等难以调试的问题。


















