温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - Firebase Admin with Database in TypeScript
firebase firebase-admin firebase-realtime-database typescript

其他 - Firebase Admin与TypeScript中的数据库

发布于 2020-03-31 23:25:45

我正在使用Firebase的管理SDK。它还提供将Firebase数据库用作管理员。

创建的Firebase Admin App的类型定义如下所示:

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

感谢您的时间和帮助。

查看更多

提问者
Robin Wieruch
被浏览
113
Frank van Puffelen 2020-01-31 22:53

据我所知,您现在正在尝试database.ServerValue.TIMESTAMPFirebaseApp实例获取对象但是对象实际上是在global上定义的firebase,而不是在应用程序实例上定义的。所以,你必须明确地导入firebase/ admin和呼叫database.ServerValue.TIMESTAMP,即firebase.database.ServerValue.TIMESTAMPadmin.database.ServerValue.TIMESTAMP