如何使用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
相关产品推荐
相关产品推荐

