@novo-x/google-firebase
TypeScript icon, indicating that this package has built-in type declarations

1.0.3 • Public • Published

Google Firebase Service

Available methods

  • createUser: creates a user
  • getUser: retrieves a user
  • updateUser: updates a user
  • deleteUser: deletes a user
  • verifyToken: verifies the token and returns the decoded data
  • notifyUser: sends push notification to a user
  • notifyAllUsers: sends push notification to all users
  • notifyTopic: sends push notification to a topic
  • disabledByAdmin: an admin disables an user
  • setCustomUserClaims: sets custom user claims
  • setAdminRights: gives an user admin rights
  • generatePasswordRecoveryLink: generates a password recovery link
  • generateEmailVerificationLink: generates an email verification link
  • createSessionCookie: creates a session cookie
  • verifySessionCookie: verifies a session cookie

Usage examples

yarn add @novo-x/google-firebase

import {GoogleFirebase, UserIdentifier} from "@novo-x/google-firebase"

const MyService = new GoogleFirebase(/* optional config object */);

const createdUser = await MyService.createUser({
    displayName: 'John Doe',
    email: 'john@doe.com',
    password: 'Pass1234'
    // etc..
})

const deletedUser = await MyService.deleteUser(
    '123456789' // firebaseUserId
)

const user = await MyService.getUser(
    UserIdentifier.USER_ID, // type of identifier (id, email, etc..)
    '123456789' // identifier value
)

const updateUser = await MyService.updateUser(
    '123456789', // firebaseUserId
    {
        displayName: 'John Doe',
        email: 'john@doe.com',
        password: 'Pass1234'
        // etc..
    } // updatedUserDdata
)

const decodedToken = await MyService.verifyToken(
    '123456789', // firebaseToken
    true // optional to check if the user is disabled
)

const userMessageId = await MyService.notifyUser(
    '123456789', // user token
    {
        title: 'Some title',
        body: 'Some body'
    } // notification object
)

const successAndFailedTokens = await MyService.notifyAllUsers(
    [
        '123456789',
        '987654321'
    ], // array with user tokens to notify
    {
        title: 'Some title',
        body: 'Some body'
    } // notification object
)

const topicMessageId = await MyService.notifyTopic(
    'some-topic', // topic to notify
    {
        title: 'Some title',
        body: 'Some body'
    } // notification object
)

const disabledUser = await MyService.disabledByAdmin(
    '123456789', // userId
    'ABCDEFGHI123456789' // admin token
)

await MyService.setCustomUserClaims(
    '123456789', // userId
    {
        // custom user claims
    }
)

await MyService.setAdminRights(
    '123456789', // userId
)

const recoveryLink = await MyService.generatePasswordRecoveryLink(
    'john@doe.com', // user email
    {
        // optional link configuration
    }
)

const emailVerificationLink = await MyService.generateEmailVerificationLink(
    'john@doe.com', // user email
    {
        // optional link configuration
    }
)

const sessionCookie = await MyService.createSessionCookie(
    'ABCDEFGHI1234567', // user token
    300000 // expiration time (milliseconds)
)

const decodedSesssionCookie = await MyService.verifySessionCookie(
    sessionCookie, // the session cookie
    true // optional to check if the user is disabled
)

Dependencies

firebase-admin

Package Sidebar

Install

npm i @novo-x/google-firebase

Weekly Downloads

2

Version

1.0.3

License

ISC

Unpacked Size

79.9 kB

Total Files

9

Last publish

Collaborators

  • lautarobruno
  • agustin-novolabs
  • novo-tincho
  • nicolas.novolabs
  • mati-novolabs
  • alejitowow
  • nahuelprieto