GithubHelp home page GithubHelp logo

firestore-deleter's Introduction

firestore-deleter

Easily delete firestore collections (along with all of its documents, subcollections, and subcollections), or all data in an entire firestore database.

OBLIGATORY WARNING: Use with caution, this makes deleting lots of data in a firestore database very easy.

The firestore API lacks a way to easily delete collections and subcollections programatically. This package fills this gap, with the following features:

  • Supports the ability to delete a single collection, multiple collections, or all collections within a database.
  • For each subcollection deleted, all subcollections (and documents) are deleted as well.

This package was developed with running integration tests against a firestore test project in mind and shines in providing a convenient way to clean up test data stored in a firebase test database.

Installation

This package is intended to be used alongside firebase-admin. Install the necessary packages using either yarn or npm:

npm install firestore-deleter
npm install firebase-admin

or

yarn add firestore-deleter
yarn add firebase-admin

Usage

// import firebaseDeleter and firebase-admin
import firebaseDeleter from "firebase-deleter";
import admin from "firebase-admin";

// initialize firebase app
admin.initializeApp();

// create some fake data to delete
const collection = admin.firestore().collection("foo")

const fakeRecordRef = collection.doc("cat");

await fakeRecordRef.set({ name: "foo", last: "test" });

// instantiate an instance of firebaseDeleter
// providing it admin.firestore() as an argument
const deleter = new firebaseDeleter(admin.firestore());

// delete the collection that was just created
// note that deleteCollections expects collectionReferences in array format

await deleter.deleteCollections([collectionToBeDeletedCollection]);

// the collection and all subcollections along with their documents have now been deleted.

// alternatively, nuclear option
// deletes all collections, subcollections, and documents in the firestore database
await deleter.deleteAll()

Testing

This repo includes tests that run against a firestore test database.

In order to run tests, you will need to have a service keys for a firestore database stored in an environment variable.

see https://firebase.google.com/docs/functions/config-env for instructions on configuring a firestore environment.

To run tests, run the following command:

yarn test

firestore-deleter's People

Contributors

emarshak avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

luigi-agosti

firestore-deleter's Issues

Up to date?

Just curious if this library is still up to date and in use? Wanted to implement myself and found on NPM. The deleteAll nuke mode makes me kind nervous to use this package on a productive app lol.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.