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();