@jvhaile/loopback4-helper
Version:
Helper components and tools for loopback 4.
31 lines (24 loc) • 1.06 kB
text/typescript
import {injectable, BindingScope} from '@loopback/core';
import firebaseAdmin = require('firebase-admin');
import {inject} from '@loopback/core';
import {FirebaseUser} from "../types";
import {ServiceAccount} from "firebase-admin/lib/credential";
import {FirebaseBindings} from "../keys";
({scope: BindingScope.SINGLETON})
export class FirebaseService {
constructor(
(FirebaseBindings.FIREBASE_SERVICE_ACCOUNT) serviceAccount: ServiceAccount,
(FirebaseBindings.FIREBASE_DB_URL) databaseURL: string,
) {
console.log("-------------------------INIT FIREBASE--------------------------");
firebaseAdmin.initializeApp({
credential: firebaseAdmin.credential.cert(serviceAccount),
databaseURL,
});
}
async verifyIdTokenAndGetFirebaseUser(idToken: string): Promise<FirebaseUser> {
const decodedIdToken = await firebaseAdmin.auth().verifyIdToken(idToken);
const uid = decodedIdToken.uid;
return firebaseAdmin.auth().getUser(uid);
}
}