Minimal Firebase with Cookies
by dirkk0
HTML
<script src="https://cdn.firebase.com/v0/firebase.js"></script>
<div id='cDiv'></div>
<input type='text' id='cInput'>
JavaScript
function createCookie(name, value, expires, path, domain) {
var cookie = name + "=" + escape(value) + ";";
if (expires) {
// If it's a date
if (expires instanceof Date) {
// If it isn't a valid date
if (isNaN(expires.getTime())) expires = new Date();
} else expires = new Date(new Date().getTime() + parseInt(expires) * 1000 * 60 * 60 * 24);
cookie += "expires=" + expires.toGMTString() + ";";
}
if (path) cookie += "path=" + path + ";";
if (domain) cookie += "domain=" + domain + ";";
document.cookie = cookie;
}
function getCookie(name) {
var regexp = new RegExp("(?:^" + name + "|;\\s*" + name + ")=(.*?)(?:;|$)", "g");
var result = regexp.exec(document.cookie);
return (result === null) ? null : result[1];
}
function deleteCookie(name, path, domain) {
// If the cookie exists
if (getCookie(name)) createCookie(name, "", -1, path, domain);
}
var browserId;
deleteCookie('browserId');
// console.log(getCookie('browserId'))
if (!getCookie('browserId')) {
browserId = prompt('set your browser id');
createCookie('browserId', browserId, 100000);
} else {
browserId = getCookie('browserId')
}
console.log(browserId);
if (browserId) {
var ref = new Firebase('https://pplab.firebaseio.com/test');
// ref.push('abc');
var onlineRef = new Firebase('https://pplab.firebaseio.com/test/devices/' + browserId + '/online');
var connectedRef = new Firebase('https://pplab.firebaseio.com/.info/connected');
connectedRef.on('value', function (snap) {
if (snap.val() === true) {
// We're connected (or reconnected)! Set up our presence state and
// tell the server to set a timestamp when we leave.
onlineRef.onDisconnect().set(Firebase.ServerValue.TIMESTAMP);
onlineRef.set(true);
}
});
if (browserId == 'mac') {
var contentRef = new...