1.0.3 • Published 2 years ago

@novo-x/google-firebase v1.0.3

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

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

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago