
Company News
Socket Named Top Sales Organization by RepVue
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.
firestorable
Advanced tools
A strong typed observable wrapper using mobx for firebase firestore database.
npm install firestorable
There is a separate github repo with example applications to demonstrate how to use firestorable with react and mobx.
Create an instance of a firestorable collection:
const db = firebase.firestore();
// create a type or interface that matches the data in the firestore collection
interface IRegistration {
time: number;
description: string;
}
// use the interface as generic type when creating the firestorable collection
const registrationCollection = new Collection<IRegistration>(
db,
"registrations", // name of your firestore collection
);
And use that instance in a mobx observable react component:
const RegistrationsList = observer(() =>
<div className="registrations-list">
{
// Each item in the docs property of the create Collection has a strong typed (IRegistration) data property representing the document data from the firestore 'registrations' collection.
registrationCollection.docs
.map(doc => <div key={doc.id}>
<div>Time: {doc.data.time}</div>
<div>Description: {doc.data.description}</div>
</div>)
}
</div>
);
});
This RegistrationsList component will now rerender whenever changes occur in the 'registrations' collection of your firestore database.
These instructions will get you a copy of the project for development and testing purposes.
I assume you already have node with npm installed.
You need to have firebase-tools installed globally to run the firebase emulator:
npm i -g firebase-tools
java is required to run the tests with a firestore emulator.
Install java on linux (debian, ubuntu)
sudo apt-get install openjdk-8-jre
git clone https://github.com/thdk/firestorable.git
cd firestorable
npm install
npm run build
Before running the tests, you need to start to firestore emulator:
npm run emulator
Keep the emulator running in one terminal window and run tests in another terminal:
npm run test
Note: after running npm run test you can run npm run coverage to view the code coverage of the last ran tests.
Note: By default emulator will use port 8080. If you need to use another port, then you have to set the port number in firebase.json.
To make sure the tests run using the port set in firebase.json, run your tests a below:
firebase emulators:exec --only firestore jest
Above command will start the emulator, run 'jest', and stop the emulator after the tests.
This project is licensed under the MIT License - see the LICENSE.txt file for details
FAQs
Mobx observable wrapper for firebase firestore database.
The npm package firestorable receives a total of 35 weekly downloads. As such, firestorable popularity was classified as not popular.
We found that firestorable demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.

Company News
/Security News
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.