在 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.TIMESTAMP
或 admin.database.ServerValue.TIMESTAMP
.
我正在使用 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.TIMESTAMP
或 admin.database.ServerValue.TIMESTAMP
.