You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 06:22:42