Introducing Flame-Core 🔥: Simplifying Firebase Operations Like Express.js for Node.js
Working with Firebase can sometimes feel overwhelming, especially when dealing with boilerplate code and repetitive operations. To address these challenges, I’m excited to introduce Flame-Core, a new npm package designed to simplify Firebase operations just as Express.js simplifies Node.js operations.
What is Flame-Core?
Flame-Core is a TypeScript-based library that abstracts common Firebase functionalities, enabling developers to interact with Firebase more intuitively and efficiently. Whether you're working on Firestore, Realtime Database, Authentication, or other Firebase modules, Flame-Core minimizes the complexities, allowing you to focus on building features rather than wrestling with repetitive code.
Why Use Flame-Core?
1. Developer Productivity
Flame-Core provides easy-to-use methods for common Firebase operations, reducing the need to write boilerplate code.
2. TypeScript Support
Built with TypeScript, Flame-Core ensures type safety and better developer experience with autocomplete features and compile-time error detection.
3. Express.js-like Simplicity
Much like how Express.js simplifies creating APIs, Flame-Core simplifies Firebase operations, making it accessible even for developers new to Firebase.
4. Scalable and Flexible
Designed with scalability in mind, Flame-Core is suitable for projects of all sizes, from small applications to enterprise-level solutions.
Getting Started
Installation
To get started, install Flame-Core via npm:
npm install flame-core
Setting Up
Import Flame-Core and initialize it with your Firebase configuration:
import firebaseConfig from 'flame-core';
firebaseConfig.initialize({
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",
});
Sample Code
Authentication Made Simple
Manage Firebase Authentication seamlessly:
import { fireAuthService } from "flame-core";
const authService = fireAuthService();
// Sign up a new user
await authService.register("test@example.com", "password123");
// Log in a user
await authService.login("test@example.com", "password123");
// Log out the current user
await authService.logout();
//Signs in with Google using the specified method.
//*Parameters: method: "popup" | "redirect" (default: "popup")
await authService.signInWithGoogle();
Firestore CRUD Operations
Performing Firestore operations has never been easier:
import { fireStoreDatabaseService } from "flame-core";
const storageService = fireStoreDatabaseService();
//Fetches all documents from a specified Firestore collection.
const response = await storageService.getAll("users", {
options: {
where: {
status: "completed",
priority: { $gt: 1 },
tags: { $arrCont: "important" },
categories: { $arrContAny: ["work", "personal"] },
type: { $in: ["task", "reminder"] },
archived: { $ne: true },
},
populate: [
["departments", "department_id"],
["jobs", "job_id"],
["locations", "location_id"],
],
sort: [
["createdAt", "desc"],
["priority", "asc"],
],
startAfter: "cursorValue1",
limit: 10,
},
});
//Fetches a document by its ID.
const response = await storageService.getById("users", {
id: "12345",
});
//Creates a new document in a collection.
const response = await storageService.create("users", {
body: { name: "John Doe", age: 30, email: "user@mail.com" },
});
//Updates a document by its ID.
const response = await storageService.updateById("users", {
id: "12345",
body: { age: 35 },
});
//Updates multiple documents by their IDs.
const response = await storageService.updateBulk("users", ["12345", "67890"], {
body: { status: "inactive" },
});
//Deletes a document by its ID.
const response = await storageService.deleteById("users", {
id: "12345",
});
//Deletes multiple documents by their IDs.
const response = await storageService.deleteBulk(
"users",
["12345", "67890"]
);
Use Cases
- Rapid Prototyping: Quickly build applications without worrying about Firebase setup complexities.
- Scalable Projects: Use Flame-Core’s organized structure for medium to large-scale applications.
- Educational Projects: Simplify Firebase learning for beginners with intuitive methods.
Community and Support
We welcome contributions to make flame-core better! If you have ideas, or suggestions, or want to report issues, feel free to open a pull request or create an issue on GitHub. Let’s build something amazing together! 🚀
Support the Developer
If you find this project helpful, consider buying me a coffee! Your support means the world. ☕ Buy Me A Coffee ⇗
Conclusion
Flame-Core is here to make Firebase operations a breeze. If you’ve ever felt bogged down by Firebase’s complexities, give Flame-Core a try and experience a more streamlined development process. Install it today, and simplify your Firebase journey!
Check out Flame-Core🔥 on npm and start building smarter, not harder.
Feel free to share your thoughts and feedback in the comments. Let’s build something amazing together! Happy coding! 😊