diff --git a/.changeset/thirty-flies-flow.md b/.changeset/thirty-flies-flow.md new file mode 100644 index 00000000000..f1016d85fd9 --- /dev/null +++ b/.changeset/thirty-flies-flow.md @@ -0,0 +1,6 @@ +--- +"@firebase/database-types": patch +"@firebase/database": patch +--- + +Added interface `Database` which is implemented by `FirebaseDatabase`. This allows consumer SDKs (such as the Firebase Admin SDK) to export the database types as an interface. diff --git a/packages/database-types/index.d.ts b/packages/database-types/index.d.ts index 88e518d4b88..134688d31cf 100644 --- a/packages/database-types/index.d.ts +++ b/packages/database-types/index.d.ts @@ -32,9 +32,16 @@ export interface DataSnapshot { val(): any; } -export class FirebaseDatabase { - private constructor(); +export interface Database { + app: FirebaseApp; + goOffline(): void; + goOnline(): void; + ref(path?: string | Reference): Reference; + refFromURL(url: string): Reference; +} +export class FirebaseDatabase implements Database { + private constructor(); app: FirebaseApp; goOffline(): void; goOnline(): void; diff --git a/packages/database/index.node.ts b/packages/database/index.node.ts index ae1cb4e79c2..c0ea32a0ab5 100644 --- a/packages/database/index.node.ts +++ b/packages/database/index.node.ts @@ -85,7 +85,7 @@ export function initStandalone(app: FirebaseApp, url: string, version: string) { app, authProvider, url - ) as types.FirebaseDatabase, + ) as types.Database, namespace: { Reference, Query,