Skip to content

Instantly share code, notes, and snippets.

@dmcgrath
Created December 15, 2017 02:46
Show Gist options
  • Save dmcgrath/d233237c887b474ae7277cd4633b707d to your computer and use it in GitHub Desktop.
Save dmcgrath/d233237c887b474ae7277cd4633b707d to your computer and use it in GitHub Desktop.
Cloud Firestore JavaScript
// https://stackoverflow.com/a/2117523
function uuidv4() {
return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(
/[018]/g,
c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
);
}
document.addEventListener('DOMContentLoaded', function() {
// // πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
// // The Firebase SDK is initialized and available here!
// // πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
noteId = window.location.hash; // was h
project = "computasbrann-example";
// f = firebase
firebase.initializeApp({
authDomain:project+".firebaseapp.com",
projectId:project
});
var dbClient=null;
var uuid = uuidv4();
firebase.firestore().enablePersistence().then(function(){
dbClient = firebase.firestore();
noteElement = document.getElementById("note");
noteDocument = dbClient.collection("notes").doc(noteId);
noteElement.oninput = function(){
noteDocument.set({
owner: uuid,
text: this.innerHTML
});
};
noteDocument.set({owner:0}, {merge: true});
noteDocument.onSnapshot(function(documentSnapshot){
noteData = documentSnapshot.data();
if(noteData.owner !== uuid ) {
noteElement.innerHTML = noteData.text || '';
}
});
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment