JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 350
  • Score
    100M100P100Q90689F
  • License MIT

A helper NPM package for Firebase Cloud Functions

Package Exports

  • firebase-functions-helper

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (firebase-functions-helper) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

firebase-functions-helper

A helper NPM package for Firebase Cloud Functions

Installation

Install using npm.

npm install firebase-functions-helper

Get Google Cloud Account Credentials from Firebase

You can Generate New Private Key from Project Settings from Firebase Console.

After that you need to copy the databaseURL for initiating the App.

Usage

Initialize Firebase App

This is the first step that you need to do before doing any other actions.

const firebaseFunctionsHelper = require('firebase-functions-helper');
const serviceAccount = require('./serviceAccountKey.json');

// Initialize Firebase App
firebaseFunctionsHelper.initializeApp(serviceAccount, databaseURL);

Get Firestore Collection with Sub Collection

// Initialize Firebase App
const app = firebaseFunctionsHelper.initializeApp(serviceAccount, databaseURL);
const db = app.firestore;

// Start exporting your collection
var result = firebaseFunctionsHelper.backup(db, 'collection-name', 'sub-collection-optional');
result.then(data => console.log(data))

Import data to firestore

This code will help you to import data from a JSON file to firestore

// Initialize Firebase App
const app = firebaseFunctionsHelper.initializeApp(serviceAccount, databaseURL);
const db = app.firestore;

// Start exporting your data
firebaseFunctionsHelper.restore(db, 'your-file-path.json');

The JSON is formated as below. The collection name is test. first-key and second-key are document ids.

{
  "test" : {
    "first-key" : {
      "email"   : "dungnq@itbox4vn.com",
      "website" : "dalenguyen.me",
      "custom"  : {
        "firstName" : "Dale",
        "lastName"  : "Nguyen"
      }
    },
    "second-key" : {
      "email"   : "test@dalenguyen.me",
      "website" : "google.com",
      "custom"  : {
        "firstName" : "Harry",
        "lastName"  : "Potter"
      }
    }
  }
}

Create a document with id in firestore

// Initialize Firebase App
const app = firebaseFunctionsHelper.initializeApp(serviceAccount, databaseURL);

const db = app.firestore;
firebaseFunctionsHelper.createDocumentWithId(db, 'collection-name', 'document-id', data);

Create a new document without an ID

// Initialize Firebase App
const app = firebaseFunctionsHelper.initializeApp(serviceAccount, databaseURL);

const db = app.firestore;
firebaseFunctionsHelper.createNewDocument(db, 'collection-name', data);

Update a document

This action will only update the current key inside the document, if the data doesn't exist, it will create a new one. However, it will not create a new document if the document doesn't exist in the first place.

// Initialize Firebase App
const app = firebaseFunctionsHelper.initializeApp(serviceAccount, databaseURL);

const db = app.firestore;
firebaseFunctionsHelper.updateDocument(db, 'collection-name', 'document-id', data);

Delete a document

// Initialize Firebase App
const app = firebaseFunctionsHelper.initializeApp(serviceAccount, databaseURL);

const db = app.firestore;
firebaseFunctionsHelper.deleteDocument(db, 'collection-name', 'document-id');

Contributions

This project is based on firebase-functions-snippets, feel free to report bugs and make feature requests in the Issue Tracker, fork and create pull requests!