在 TypeScript 中使用数据库的 Firebase Admin

Firebase Admin with Database in TypeScript

我正在使用 Firebase 的 Admin SDK。它还提供使用 Firebase Database 作为管理员。

创建的 Firebase Admin 应用程序的类型定义如下所示:

import * as firebaseAdmin from 'firebase-admin';

export type FirebaseContext = {
  firebaseAdmin: firebaseAdmin.app.App;
};

到目前为止,一切正常。但是,如果我使用 Firebase 的 TIMESTAMP 功能,它会抛出类型错误:

firebaseAdmin.database.ServerValue.TIMESTAMP

// Property 'ServerValue' does not exist on type '(url?: string | undefined) => Database'.ts(2339)

应该说 firebaseAdmin 实例作为参数来自函数,因此定义为前面的 FirebaseContext.firebaseAdmin

那么,我之前的类型定义有没有做错什么?因为,如果我不通过函数的参数传递 firebase 实例,而是直接从它的模块导入它,它就不会抱怨类型定义。所以一定是type FirebaseContext出了问题。

感谢您的宝贵时间和帮助。

据我所知,您现在正在尝试从 FirebaseApp 实例中获取 database.ServerValue.TIMESTAMP 对象。但该对象实际上是在全局 firebase 上定义的,而不是在应用程序实例上定义的。因此,您必须显式导入 firebase/admin 并在 that 上调用 database.ServerValue.TIMESTAMP,即 firebase.database.ServerValue.TIMESTAMPadmin.database.ServerValue.TIMESTAMP .