0.1.4-experimental.1 • Published 11 months ago

monfireboose v0.1.4-experimental.1

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

Monfireboose

A lightweight JavaScript library that provides a high level and model based API for interacting with Firebase.

Use your Firebase like Mongoose. Ever thought about using your Firestore collections like Mongoose models, Monfireboose will help with this.

👀 What can it do?

It allows you to manage your whole Firestore database with models built by you.

🔍 Table of Contents

⚙️ Install

Install it locally in your project folder:

# Using npm
npm i monfireboose
# Or yarn
yarn add monfireboose
# Or pnpm
pnpm add monfireboose

💡 Usage

  • Connect to the Firestore database like to MongodDB with Mongoose
  • Create and validate Schemas like with Mongoose
import { connect, FirebaseConfig, Schema, model } from 'monfireboose';

const config = new FirebaseConfig({
  apiKey: 'YOUR_API_KEY',
  authDomain: 'YOUR_AUTH_DOMAIN',
  projectId: 'YOUR_PROJECT_ID',
  storageBucket: 'YOUR_STORAGE_BUCKET',
  messagingSenderId: 'YOUR_MESSAGING_SENDER_ID',
  appId: 'YOUR_APP_ID',
});

connect(config).then((app) => {
  console.log('Connected to Firebase', app);
});

const userSchema = new Schema({
  name: {
    type: String,
    required: true,
  },
  age: {
    type: Number,
    required: true,
  },
});

const userModel = model('users', userSchema);

const user = await userModel.add({ name: 'John', age: 30 });

console.log(user.id);

All CRUD available methods

  • add - adds a new document
  • edit - edits existing document
  • get - get documents with given query (or all documents if query is not given)
  • getDoc - gets one document by ID
  • delete - delets document by ID

*Note: Missing something? don't worry Monfireboose includes all Firebase native modules under monfireboose/fire/needed_module. needed_module is you desired module e.g. auth, firestore, storage etc.

💬 Discussions

Head over to the discussions to share your ideas.

📄 License

MIT © Monfireboose © Albert Arakelyan