如何向Firebase项目中的指定Firestore数据库添加数据?
如何向Firebase项目中指定的Firestore数据库添加数据
Firebase多数据库场景下,核心是通过数据库ID初始化对应Firestore实例,而非使用默认实例。以下是常用平台的实现方式:
Web SDK (v9+)
使用模块化SDK时,初始化Firestore实例时传入目标数据库ID即可:
import { initializeApp } from "firebase/app"; import { getFirestore, collection, addDoc } from "firebase/firestore"; // 初始化Firebase应用(配置不变) const firebaseApp = initializeApp({ apiKey: "YOUR_API_KEY", authDomain: "YOUR_AUTH_DOMAIN", // 其他项目配置项 }); // 初始化指定数据库的Firestore实例 const targetDB = getFirestore(firebaseApp, { databaseId: "your-target-db-id" // 替换为你要操作的数据库ID }); // 向目标数据库的集合添加数据 async function addDocument() { try { const docRef = await addDoc(collection(targetDB, "posts"), { title: "Hello Multi-DB", content: "This is stored in a specific Firestore DB" }); console.log("文档添加成功,ID:", docRef.id); } catch (err) { console.error("添加文档失败:", err); } } addDocument();
Node.js Admin SDK
Admin端同样通过指定databaseId获取目标数据库实例:
const { initializeApp, cert } = require("firebase-admin/app"); const { getFirestore } = require("firebase-admin/firestore"); // 初始化Admin应用 const serviceAccount = require("./service-account-key.json"); initializeApp({ credential: cert(serviceAccount) }); // 获取指定数据库的实例 const targetDB = getFirestore({ databaseId: "your-target-db-id" // 替换为目标数据库ID }); // 添加数据 async function addData() { try { const docRef = await targetDB.collection("products").add({ name: "Wireless Headphones", price: 99.99 }); console.log("文档ID:", docRef.id); } catch (error) { console.error("操作失败:", error); } } addData();
注意事项
- 数据库ID可在Firebase控制台的Firestore数据库列表中查看,或进入对应数据库后查看URL中的
d=参数值。 - 确保你的客户端/服务账号拥有目标数据库的读写权限(在Firebase控制台的规则页面配置)。
- 若使用旧版Web SDK (v8),可通过
firebase.firestore().database('your-db-id')获取指定数据库实例。
内容的提问来源于stack exchange,提问作者Anga
相关产品推荐
相关产品推荐

