firestore-json-utils v0.7.0
firestore-json-util
A fully typed and tested lib for working with Firestore documents. Used to parse and simplify Firestore documents for those who don't want to commit to the Firebase SDK.
Installation
npm install --save firestore-json-utils
Usage
parse
Transforms a simple JSON object into a Firestore document.
Supports all known Firestore data types expect GeoPoints
and References
. Those are transformed as objects
/ strings
.
import { parse } from 'firestore-json-utils';
...
const document = parse(json);
parse
example
Say, we have a simple object representing a person.
a call to parse
with our fictional 'person' JSON as input
{
"id": 1701,
"name": "Jane Doe",
"active": true,
"dateOfBirth": "1977-12-09T14:35:21.152Z"
}
returns the following Firestore document representation as output:
{
"fields": {
"id": {
"integerValue": "1701"
},
"name": {
"stringValue": "Jane Doe"
},
"active": {
"booleanValue": true
},
"dateOfBirth": {
"timestampValue": "1977-12-09T14:35:21.152Z"
}
}
}
(and yes, please ignore that dateOfBirth
should be a local date rather than a timestamp, depending on how you see it...)
simplify
Transforms a Firestore document into a readable simplified JSON object.
Supports all known Firestore data types, but be cautious with multidimensional arrays.
import { simplify } from 'firestore-json-utils';
...
const json = simplify(document);
simplify
example
A call to simplify
with the following Firestore document (input):
{
"fields": {
"id": {
"integerValue": "1701"
},
"name": {
"stringValue": "Jane Doe"
},
"active": {
"booleanValue": true
},
"dateOfBirth": {
"timestampValue": "1977-12-09T14:35:21.152Z"
}
}
}
will create the following simple JSON:
{
"id": 1701,
"name": "Jane Doe",
"active": true,
"dateOfBirth": "1977-12-09T14:35:21.152Z"
}
Contributing
Just fork and submit a pull request.
License
Released under the MIT license.