Integrating your Google Spreadsheet with Firebase Functions

A spontaneous approach.

firebase cloud functions
firebase cloud functions
Firebase Cloud Functions with Google Spreadsheet API

Part 1 — Set Up Your Firebase Project

mkdir my-firebase-function
cd my-firebase-function
npm init
npm install -g firebase-tools
firebase login
firebase init
my-firebase-function/
├── node_modules/
├── firebase.json
├── functions/
├── index.js
├── node_modules/
├── package-lock.json
└── package.json
└── package.json

Part 2 — Set Up Your Google Spreadsheet API

cd my-firebase-function/functions/
npm install googleapis@39 --save

Part 3 — Integrate

Google Spreadsheet API Authentication

Image for post
Image for post
Click to view code snippet

Cloud Functions and Endpoints

mkdir functions/spreadsheet
cd functions/spreadsheet
touch createSpreadsheet.js createWorksheet.js updateWorksheet.js touch removeWorksheet.js

Below are code snippets for the Cloud Functions

Create Spreadsheet

Image for post
Image for post
Click to view code snippet

Create Worksheet

Image for post
Image for post
Click to view code snippet

Append / Update Worksheet

Image for post
Image for post
Click to view code snippet

Remove worksheet

Image for post
Image for post
Click to view code snippet
Image for post
Image for post
Click to view code snippet
Image for post
Image for post
Click to view code snippet

Part 3 — Deploying Cloud Functions

firebase deploy — only functions
firebase deploy --only functions:createSpreadsheet

Note

https://<app_url>/<function_endpoint>

Part 4 — Testing

Create new Spreadsheet

curl -d "title=Spreadsheet+Test” -X GET https://<app_url>/createSpreadSheetParameters
- title: Spreadsheet title

Create new Worksheet

curl -d "ssid=<SSID>&title=<sheet title>” -X GET https://<app_url>/createWorkSheetParameters
- ssid: Spread sheet identification
- title: Sheet title

Append / Update Worksheet

curl -d "ssid=<SSID>&sheetRange=<sheet name>&data=<array_of_data>” -X GET https://<app_url>/updateWorkSheetParameters
- ssid: spread sheet id
- sheetRange: sheet name
- data: array of data to be inserted / updated
example: [
['name', 'age', 'gender'],
['john doe', 24, 'male'],
['felicia', 28, 'female']
]

Remove Worksheet

curl -d "ssid=<SSID>&sheetRange=<sheet name>” -X GET https://<app_url>/removeWorkSheetParameters
- ssid: spread sheet id
- sheetId: work sheet id

Software engineer, runner, hiker, fitness enthusiast. https://namieluss.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store