Skip to content
This repository has been archived by the owner on Jan 19, 2022. It is now read-only.

Latest commit

 

History

History
156 lines (111 loc) · 2.29 KB

README.md

File metadata and controls

156 lines (111 loc) · 2.29 KB

Node Firebase API

Install

  1. Clone this repository

  2. Run npm or yarn

  3. Create a service account JSON file from the Firebase console. By default save it as /functions/service-account.json.

  4. You need to have firebase-tools installed npm i -g [email protected] (8.4.2 has problems)

  5. Run firebase init and select Functions and Emulators. Install the Function emulator.

Getting Started

  1. Launch locally using firebase serve

  2. Deploy using firebase deploy

Endpoints

A "collection" is any object collection (e.g. Users, Projects, etc.). The term collection is taken from Firestore terminology.

Get all items in a collection

GET /:collection

Get a collection item by ID

GET /:collection/:collectionId

Create a collection item

By default, there is no schema defined or required. The object can contain any valid JSON.

POST /:collection
Content-Type: application/json

{
   "name": "Something"
}

Update a collection item

PUT /:collection/:collectionId
Content-Type: application/json

{
   "archive": true
}

Delete a collection item

DELETE /:collection/:collectionId

Examples

Request

GET {{baseUrl}}/projects
Accept: application/json
Cache-Control: no-cache

Response

[
  {
    "id": "lpstt3v",
    "category": "34 Fame",
    "name": "Documentation Site",
    "icon": "fas fa-book",
    "status": "On-Hold"
  }
]

Request

POST {{baseUrl}}/projects
Accept: application/json
Content-Type: application/json
Cache-Control: no-cache

{
   "category": "34 Fame",
   "name": "Documentation Site",
   "icon": "fas fa-book",
   "status": "On-Hold"
}

Response

{
  "id": "lpstt3v",
  "category": "34 Fame",
  "name": "Documentation Site",
  "icon": "fas fa-book",
  "status": "On-Hold"
}

Request

PUT {{baseUrl}}/projects/lpstt3v
Accept: application/json
Content-Type: application/json
Cache-Control: no-cache

{
   "status": "Open"
}

Response

{
  "id": "lpstt3v",
  "category": "34 Fame",
  "name": "Documentation Site",
  "icon": "fas fa-book",
  "status": "Open"
}

DELETE {{baseUrl}}/projects/lpstt3v
Accept: */*
Cache-Control: no-cache