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.
npm install --save firestore-json-utils
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);
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...)
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);
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"
}
Just fork and submit a pull request.
Released under the MIT license.