Skip to content

Instantly share code, notes, and snippets.

@anantn
anantn / firebase_create.js
Last active November 20, 2023 23:17
Firebase: Creating data if it doesn't exist. This snippet creates a user only if it doesn't already exist.
function go() {
var userId = prompt('Username?', 'Guest');
var userData = { name: userId };
tryCreateUser(userId, userData);
}
var USERS_LOCATION = 'https://SampleChat.firebaseIO-demo.com/users';
function userCreated(userId, success) {
if (!success) {
@anantn
anantn / firebase_player_assignment.js
Last active January 14, 2023 01:51
Firebase: Assigning players in a multiplayer game. This snippet assigns you a spot in a game if the game isn't full yet.
function go() {
var userId = prompt('Username?', 'Guest');
// Consider adding '/<unique id>' if you have multiple games.
var gameRef = new Firebase(GAME_LOCATION);
assignPlayerNumberAndPlayGame(userId, gameRef);
};
// The maximum number of players. If there are already
// NUM_PLAYERS assigned, users won't be able to join the game.
var NUM_PLAYERS = 4;
@anantn
anantn / firebase_first_item.js
Last active March 4, 2016 00:04
Firebase: Get the first item in a list. This snippet retrieves only the first item in a list.
function makeList(ref) {
var fruits = ["banana", "apple", "grape", "orange"];
for (var i = 0; i < fruits.length; i++) {
ref.push(fruits[i]);
}
}
function getFirstFromList(ref, cb) {
ref.startAt().limit(1).once("child_added", function(snapshot) {
cb(snapshot.val());
@anantn
anantn / firebase_remove_pushed.js
Last active February 19, 2019 23:45
Firebase: Removing an item you've pushed. This snippet shows how to remove an object that you just added using push().
function pushSomething(ref) {
// Let's push something. push() returns a reference that you can hold onto!
var justPushed = ref.push({test: "push"});
// We return a reference, but you can also return the name of the newly
// created object with .name().
return justPushed;
}
function removeItem(ref) {
// Now we can get back to that item we just pushed via .child().
@anantn
anantn / firebase_queue_pop.js
Last active December 10, 2015 01:19
Firebase: Using .push() to maintain a queue and ensuring only one client is able to obtain the head of the queue at a time.
var Firebase = require("./firebase-node.js");
function Queue(ref) {
this._ref = ref;
}
Queue.prototype.pop = function(cb) {
this._ref.startAt().limit(1).once("child_added", this._pop.bind(this, cb));
}
@anantn
anantn / firebase_workers.js
Created December 27, 2012 22:11
Firebase: Implementing a worker queue pattern using firebase_queue_pop.js
var Firebase = require("./firebase-node.js");
function Queue(ref) {
this._ref = ref;
}
Queue.prototype.pop = function(cb) {
this._ref.startAt().limit(1).once("child_added", this._pop.bind(this, cb));
}
@anantn
anantn / firefox_ext_iframe.js
Created January 1, 2013 22:04
Creating an iframe in Firefox extension code
if (Components && Components.classes) {
// This means we are in a Firefox extension.
var appShell = Components.classes["@mozilla.org/appshell/appShellService;1"]
.getService(Components.interfaces.nsIAppShellService);
// hiddenDoc will now point to a regular DOM document.
var hiddenDoc = appShell.hiddenDOMWindow.document;
// Create an iframe.
let iframe = hiddenDoc.createElementNS("http://www.w3.org/1999/xhtml", "iframe");
@anantn
anantn / backfire.diff
Created January 11, 2013 01:52
Changes to needed to make TODOmvc real-time with Firebase <-> Backbone
--- ../backbone/examples/todos/todos.js 2013-01-08 17:02:02.000000000 -0800
+++ todos.js 2013-01-10 17:33:56.000000000 -0800
@@ -1,7 +1,6 @@
// An example Backbone application contributed by
// [Jérôme Gravel-Niquet](http://jgn.me/). This demo uses a simple
-// [LocalStorage adapter](backbone-localstorage.html)
-// to persist Backbone models within your browser.
+// Firebase adapter to persist Backbone models.
// Load the application once the DOM is ready, using `jQuery.ready`:
@anantn
anantn / firebase_snapshot_parent.js
Last active April 14, 2021 15:29
Firebase: Get the parent of a snapshot.
function getParent(snapshot) {
// You can get the reference (A Firebase object) from a snapshot
// using .ref().
var ref = snapshot.ref();
// Now simply find the parent and return the name.
return ref.parent().name();
}
var testRef = new Firebase("https://example.firebaseIO-demo.com/foo/bar");
testRef.once("value", function(snapshot) {
@anantn
anantn / todomvc_angularFire.diff
Created March 22, 2013 22:46
Changes required to make AngularJS/TodoMVC real-time with angularFire.
diff -ur ../todomvc/architecture-examples/angularjs/index.html examples/todomvc/index.html
--- ../todomvc/architecture-examples/angularjs/index.html 2013-03-15 15:31:06.000000000 -0700
+++ examples/todomvc/index.html 2013-03-22 15:21:00.000000000 -0700
@@ -61,9 +61,10 @@
</footer>
<script src="components/todomvc-common/base.js"></script>
<script src="components/angular/angular.js"></script>
+ <script src="https://cdn.firebase.com/v0/firebase.js"></script>
+ <script src="../../angularFire.js"></script>
<script src="js/app.js"></script>