Skip to content

πŸ‘·πŸ½β€β™€οΈ CRUD operations for Google Cloud Functions APIs for any generic Collection in Firestore.

Notifications You must be signed in to change notification settings

joemccann/api-firestore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SYNOPSIS

πŸ‘·πŸ½β€β™€οΈ CRUD operations for Google Cloud Functions APIs for any generic Collection in Firestore.

REQUIREMENTS

  1. A Google Cloud Account.
  2. Billing Enabled.
  3. API and Firestore Access Enabled.
  4. gcloud CLI installed and in your $PATH.
  5. A preferred configuration created ( gcloud init ).

USAGE

curl https://${DEFAULT_REGION}-${PROJECT}.cloudfunctions.net/api-firestore --data '{ "collection": "foo", "document": "foo-doc-1", "value": "{ "message": "hello from foo doc." }" }' -H "Content-Type: application/json"

The expected response:

{
  "data": "OK"
}

Or in the case there is a failure:

{
  "err":"Document, foo, already exists."
}

API

# Create a document
curl https://${DEFAULT_REGION}-${PROJECT}.cloudfunctions.net/api-firestore --data '{ "collection": "foo", "document": "foo-doc-1", "value": "{ "message": "hello from foo doc." }" }' -H "Content-Type: application/json"

# Get a document by its document name
curl https://${DEFAULT_REGION}-${PROJECT}.cloudfunctions.net/api-firestore?document=foo-doc-1

# Update a user by their username (id)
curl https://${DEFAULT_REGION}-${PROJECT}.cloudfunctions.net/api-firestore --data '{ "collection": "foo", "document": "foo-doc-1", "value": "{ "message": "hello from foo doc...again!" }" }' -H "Content-Type: application/json"

# Delete a user by their username
curl -X DELETE https://${DEFAULT_REGION}-${PROJECT}.cloudfunctions.net/api-firestore?document=foo-doc-1

DEPLOY

First, fork or clone this repo, then:

npm i

You need to pass in your environment variables either in a .env.yaml file or as command line arguements. Run the following command in the root of this repository, assuming a .env.yaml file:

gcloud functions deploy api-firestore --runtime nodejs10 --trigger-http --memory 128MB --env-vars-file .env.yaml

You should receive a YAML like response in your terminal including the URL for the Cloud Function.

TESTS

npm i -D
PROJECT={PROJECT} npm test

AUTHORS

LICENSE

MIT

About

πŸ‘·πŸ½β€β™€οΈ CRUD operations for Google Cloud Functions APIs for any generic Collection in Firestore.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published