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

如何使用Firebase Admin SDK访问指定名称的Firestore数据库

访问指定名称的Firestore数据库(firebase-admin)

问题描述

我拥有两个Firestore数据库:默认数据库(default)和指定名称的数据库test-db,在Node服务器上使用firebase-admin npm包访问这些数据库时,默认会连接(default)数据库。当前代码尝试配置连接test-db但未成功,代码如下:

import admin from 'firebase-admin'

process.env.GOOGLE_APPLICATION_CREDENTIALS = path.join(__dirname, 'service-account-key.json')

const app = admin.initializeApp({
  databaseURL: 'https://test-db.firebaseio.com',
  databaseId: 'test-db'
})

const fs = admin.firestore(app)
console.log(fs.databaseId) // outputs (default)

解决方案

问题出在配置项的使用和实例获取方式上,以下是修正后的代码:

import admin from 'firebase-admin'
import path from 'path'

process.env.GOOGLE_APPLICATION_CREDENTIALS = path.join(__dirname, 'service-account-key.json')

// 初始化Admin应用,无需配置databaseURL(该配置属于实时数据库,与Firestore无关)
const app = admin.initializeApp()

// 方式1:通过instance方法指定目标数据库ID
const fs = admin.firestore(app).instance('test-db')

// 方式2:使用getFirestore直接指定数据库ID
// const fs = admin.getFirestore(app, 'test-db')

console.log(fs.databaseId) // 输出 test-db

关键说明

  • databaseURL是Firebase实时数据库的配置参数,和Cloud Firestore没有关联,因此可以从初始化配置中移除。
  • 直接调用admin.firestore(app)会默认连接(default)数据库,要访问指定名称的数据库,必须通过instance('数据库ID')方法,或者使用getFirestore(app, '数据库ID')的方式显式指定目标数据库。

内容的提问来源于stack exchange,提问作者danday74

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 14:39:50