Skip to content

Firebase Admin Service

Lesgo! comes with a service wrapper of firebase-admin plugin

Initialization

import FirebaseAdmin from "Services/FirebaseAdminService";

const serviceAccount = require("path/to/serviceAccountKey.json");

const firebaseAdmin = new FirebaseAdmin({
    serviceAccount,
    projectName: "databaseName"
});

Accessing Firebase Admin Client

If ever needed you can also access the service instance directly through firebaseAdmin.app

Available methods

firebaseAdmin.getAllUsers

This will fetch all users from firebase

// Get at most 10 users starting from 
await firebaseAdmin.getAllUsers(10, "zUECpHuP5a63T9DNt64TeTrxqfV1WvM5IVe8cYZ9E9tSbhFOrw3QK2VPXJiLiYZo4dne5naMKnPPPYrUkUaYaJgPzfaV0gVj0EEdkiJvsdlreEShuogIs4zbdlLtqPQ8");

/**
[
    {
        uid: "ly7vYiwWlpE1kAMw34mfPPkqiqaA",
        email: "jon@test.com",
        password: "jon1234",
        username: "jonsnow",
        role: "user",
        lastSignInTime: null,
        creationTime: "Mon, 08 Jul 2019 01:07:01 GMT"
    },
    {
        uid: "8zaRodq7KcGfXh6Dg3r5ub3svBgM",
        email: "arya@test.com",
        password: "arya1234",
        username: "aryastark",
        role: "user",
        lastSignInTime: "Sat, 27 Jul 2019 01:07:01 GMT",
        creationTime: "Thu, 25 Jul 2019 01:07:01 GMT"
    },
    ...
]
*/

firebaseAdmin.createUser

This allows you to create a new Firebase Authentication user

await firebaseAdmin.createUser({
    uid: "ly7vYiwWlpE1kAMw34mfPPkqiqaA",
    email: "jon@test.com",
    password: "jon1234",
    username: "jonuser"
});

/**
{
    uid: "ly7vYiwWlpE1kAMw34mfPPkqiqaA",
    email: "jon@test.com",
    password: "jon1234",
    username: "jonuser",
    role: "user",
    lastSignInTime: null,
    creationTime: "Mon, 08 Jul 2019 01:07:01 GMT"
}
*/

firebaseAdmin.deleteUser

This allows deleting existing users by their uid

await firebaseAdmin.deleteUser("qSE2pP4lr0Dfn0DfcDbeY6rqlwjd");

firebaseAdmin.delete

This will render this app unusable and frees the resources of all associated services.

await firebaseAdmin.delete();