Robin Wieruch
Robin Wieruch

Reputation: 15908

Firebase Admin with Database in TypeScript

I am using Firebase's Admin SDK. It also offers to use the Firebase Database as admin.

The type definition for the created Firebase Admin App looks as follows:

import * as firebaseAdmin from 'firebase-admin';

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

So far, it worked fine. However, if I am using Firebase's TIMESTAMP feature, it throws a type error:

firebaseAdmin.database.ServerValue.TIMESTAMP

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

It should be said that the firebaseAdmin instance comes as argument from a function and is thus defined as FirebaseContext.firebaseAdmin from earlier.

So, did I do anything wrong with the earlier type definition? Because, if I don't pass the firebase instance via the function's arguments but import it directly from its module, it doesn't complain about the type definition. So there must be something wrong with the type FirebaseContext.

Thanks for your time and help.

Upvotes: 2

Views: 1188

Answers (1)

Frank van Puffelen
Frank van Puffelen

Reputation: 600006

As far as I can see you are now trying to get the database.ServerValue.TIMESTAMP object from a FirebaseApp instance. But the object is actually defined on the global firebase, and not on an app instance. So you will have to explicitly import firebase/admin and call database.ServerValue.TIMESTAMP on that, i.e. firebase.database.ServerValue.TIMESTAMP or admin.database.ServerValue.TIMESTAMP.

Upvotes: 1

Related Questions