Skip to content

Parse the Firestore REST API JSON into a useable JS object

Notifications You must be signed in to change notification settings

jdbence/firestore-parser

Repository files navigation

firestore-parser · Maintainability Test Coverage npm version npm license

Parse the Firestore REST API JSON into a useable JS object

Installation

  // Install with NPM
  npm install firestore-parser --save
  // or Install with Yarn
  yarn add firestore-parser

Examples

Live Example

  // Node/AMD: 
  // const FireStoreParser = require('firestore-parser');
  // Node with TypeScript:
  // import * as FireStoreParser from 'firestore-parser';
  import FireStoreParser from 'firestore-parser'
  const projectID = 'PROJECT_ID'
  const key = 'API_KEY'
  const doc = 'DOCUMENT'
  const url = `https://firestore.googleapis.com/v1beta1/projects/${projectID}/databases/(default)/documents/${doc}?key=${key}`
  
  fetch(url)
    .then(response => response.json())
    .then(json => FireStoreParser(json))
    .then(json => console.log(json));

Data Structure

The Firestore JSON returned in the REST API, uses value type as keys. This can be difficult to work with since you have to know the data type prior getting the value. The firestore-parser removes this barrier for you.

JSON response from Firestore

{
	"player": {
		"mapValue": {
			"fields": {
				"name": {
					"stringValue": "steve"
				},
				"health": {
					"integerValue": "100"
				},
				"alive": {
					"booleanValue": true
				}
			}
		}
	},
	"level": {
		"integerValue": "7"
	}
}

JSON parsed with firestore-parser

{
	"player": {
		"name": "steve",
		"health": 100,
		"alive": true
	},
	"level": 7
}