-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathserver.js
113 lines (92 loc) · 2.65 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
var express = require('express');
var firebase = require('firebase');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json()); //need to parse HTTP request body
var config = {
databaseURL: "",
type: "",
project_id: "",
private_key_id: "",
private_key: "",
client_email: "",
auth_uri: "",
token_uri: "",
auth_provider_x509_cert_url: "",
client_x509_cert_url: ""
}
firebase.initializeApp(config);
//Fetch instances
app.get('/', function (req, res) {
console.log("HTTP Get Request");
var userReference = firebase.database().ref("/users/");
//Attach an asynchronous callback to read the data
userReference.once("value",
function(snapshot) {
console.log(snapshot.val());
res.json(snapshot.val());
userReference.off("value");
},
function (errorObject) {
console.log("The read failed: " + errorObject.code);
res.send("The read failed: " + errorObject.code);
});
});
//Create new instance
app.put('/', function (req, res) {
console.log("HTTP Put Request");
var userName = req.body.UserName;
var name = req.body.Name;
var age = req.body.Age;
console.log(req.body);
var referencePath = '/users/data/0/';
var userReference = firebase.database().ref(referencePath);
userReference.set({Name: name, Age: age},
function(error) {
if (error) {
res.send("Data could not be saved." + error);
}
else {
res.send("Data saved successfully.");
}
});
});
//Update existing instance
app.post('/', function (req, res) {
console.log("HTTP POST Request");
var userName = req.body.UserName;
var name = req.body.Name;
var age = req.body.Age;
var referencePath = '/Users/'+userName+'/';
var userReference = firebase.database().ref(referencePath);
userReference.update({Name: name, Age: age},
function(error) {
if (error) {
res.send("Data could not be updated." + error);
}
else {
res.send("Data updated successfully.");
}
});
});
//Delete an instance
app.delete('/', function (req, res) {
console.log("HTTP DELETE Request");
var userName = req.body.UserName;
var name = req.body.Name;
var age = req.body.Age;
var referencePath = '/Users/'+userName+'/';
var userReference = firebase.database().ref(referencePath);
userReference.remove()
.then(function() {
console.log("Remove succeeded.")
})
.catch(function(error) {
console.log("Remove failed: " + error.message)
});
});
var server = app.listen(8080, function () {
var host = server.address().address;
var port = server.address().port;
console.log("Example app listening at http://%s:%s", host, port);
});