Skip to content

Instantly share code, notes, and snippets.

@Charpell
Created June 6, 2018 14:41
Show Gist options
  • Save Charpell/db4cd191be8bd4684915b976d7dbda01 to your computer and use it in GitHub Desktop.
Save Charpell/db4cd191be8bd4684915b976d7dbda01 to your computer and use it in GitHub Desktop.
const functions = require("firebase-functions");
const cors = require('cors')({ origin: true });
const admin = require('firebase-admin');
admin.initializeApp();
const database = admin.database().ref('/items');
exports.helloWorld = functions.https.onRequest((request, response) => {
response.send("Hello from a Severless Database!");
});
const getItemsFromDatabase = (res) => {
let items = [];
return database.on('value', (snapshot) => {
snapshot.forEach((item) => {
items.push({
id: item.key,
item: item.val().item
});
});
res.status(200).json(items);
}, (error) => {
res.status(error.code).json({
message: `Something went wrong. ${error.message}`
})
})
};
exports.addItem = functions.https.onRequest((req, res) => {
return cors(req, res, () => {
if(req.method !== 'POST') {
return res.status(401).json({
message: 'Not allowed'
})
};
const item = req.body.item;
database.push({ item });
getItemsFromDatabase(res)
});
});
exports.getItems = functions.https.onRequest((req, res) => {
return cors(req, res, () => {
if(req.method !== 'GET') {
return res.status(401).json({
message: 'Not allowed'
});
};
getItemsFromDatabase(res)
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment