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-utilsUsage
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.