Node.js中firebase-admin初始化多Firebase连接报错如何解决?
出错原因
firebase-admin 10.x版本做了模块化拆分调整,Realtime Database 相关的API不再从firebase-admin顶层包导出,你使用的从顶层导入database的写法是9.x及更早版本的兼容写法,在10.x版本中已经被移除,因此调用时会抛出方法不存在的错误。
解决方案
调整导入和调用方式即可:
- 修改Realtime Database相关API的导入路径,改为从
firebase-admin/database包导入getDatabase方法 - 用
getDatabase(app)替代原有的database(app)调用,即可拿到对应实例的数据库对象
修正后的完整代码如下:
import { getDatabase } from 'firebase-admin/database'; import { applicationDefault, initializeApp } from 'firebase-admin/app'; const app = initializeApp({ credential: applicationDefault(), databaseURL: 'https://DATABASE_NAME.firebaseio.com' }, 'xx'); const db = getDatabase(app);
如果需要在同一个app实例下连接其他Realtime Database实例,直接在getDatabase方法第二个参数传入对应数据库的URL即可,符合你多数据库连接的需求:
const otherDb = getDatabase(app, 'https://OTHER_DATABASE_NAME.firebaseio.com');
内容的提问来源于stack exchange,提问作者Voloda
相关产品推荐
相关产品推荐

