-
Notifications
You must be signed in to change notification settings - Fork 0
/
analytics.js
25 lines (21 loc) · 910 Bytes
/
analytics.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
var analytics = new Firebase('https://olgabdb-f2ace.firebaseio.com/');
var activeVisitors = analytics.child('activeVisitors');
var totalVisitors = analytics.child('totalVisitors');
totalVisitors.transaction(function (currentData) {
return currentData + 1;
});
var visitor = {
path: window.location.pathname,
arrivedAt: Firebase.ServerValue.TIMESTAMP,
userAgent: navigator.userAgent
};
var activeVisitorRef = activeVisitors.push(visitor, function () {
activeVisitors.child(visitorId).once('value', function (snapshot) {
visitor.arrivedAt = snapshot.child('arrivedAt').val();
var pastVisitors = analytics.child('pastVisitors');
visitor.leftAt = Firebase.ServerValue.TIMESTAMP;
pastVisitors.child(visitorId).onDisconnect().set(visitor);
});
});
var visitorId = activeVisitorRef.name();
activeVisitorRef.onDisconnect().remove();