Refirebase is a simple library that allows you to use Firebase Realtime Database, Firestore, Storage and Authentication as a state management solution in your JavaScript application.
Use your favorite package manager to install Refirebase:
npm install refirebaseyarn add refirebasepnpm add refirebasebun add refirebaseImport the Refirebase class:
import{Refirebase}from'refirebase';You can use the Refirebase class to get the Firebase objects:
constrefirebase=newRefirebase({apiKey: 'FIREBASE_API_KEY',authDomain: 'FIREBASE_AUTH_DOMAIN',databaseURL: 'FIREBASE_DATABASE_URL',projectId: 'FIREBASE_PROJECT_ID',storageBucket: 'FIREBASE_STORAGE_BUCKET',messagingSenderId: 'FIREBASE_MESSAGING_SENDER_ID',appId: 'FIREBASE_APP_ID',measurementId: 'FIREBASE_MEASUREMENT_ID',});Or you can use destructuring to get other objects:
const{ db, auth }=newRefirebase({apiKey: 'FIREBASE_API_KEY',authDomain: 'FIREBASE_AUTH_DOMAIN',databaseURL: 'FIREBASE_DATABASE_URL',projectId: 'FIREBASE_PROJECT_ID',storageBucket: 'FIREBASE_STORAGE_BUCKET',messagingSenderId: 'FIREBASE_MESSAGING_SENDER_ID',appId: 'FIREBASE_APP_ID',measurementId: 'FIREBASE_MEASUREMENT_ID',});If you prefer to use directly environment variables (from .env file), you can simply call the constructor without any parameters:
FIREBASE_API_KEY=FIREBASE_AUTH_DOMAIN=FIREBASE_DATABASE_URL=FIREBASE_PROJECT_ID=FIREBASE_STORAGE_BUCKET=FIREBASE_MESSAGING_SENDER_ID=FIREBASE_APP_ID=FIREBASE_MEASUREMENT_ID=constrefirebase=newRefirebase();// Import the Refirebase classimport{db}from'@/config/firebase';// Get all data from the 'users' collectionconstusers=db.firestore.get("users");// Get data with conditionsconstusers=db.firestore.get("users",{where: {name: "John",},});// Get data with conditions and indexconstusers=db.firestore.get("users",{where: {name: "John",lastName: {not: "Doe"},},});// Get data with conditions and notconstusers=db.firestore.get("users",{where: {name: "John",age: {operator: ">=",value: 18},},});Warning
For more information about the limitations of the Firestore query, see Firebase Firestore Query Limitations.
// Import the Refirebase classimport{db}from'@/config/firebase';// Get ALL data from the 'users' collectionconstusers=db.realtime.get("users");// Import the Refirebase classimport{db}from'@/config/firebase';// Get a file from the storageconstfile=db.storage.get("path/to/file");// Import the Refirebase classimport{auth}from'@/config/firebase';// Sign in with Googleconstresult=awaitauth.handleProviderSignIn("google");if(!result){// Handle error}constuser=result.user;This project is licensed under the MIT License - see the LICENSE file for details.