<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.firebase.com/js/client/2.2.7/firebase.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/js-data/1.8.0/js-data.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/js-data-firebase/1.1.2/js-data-firebase.min.js"></script>
<script src="store.js"></script>
<script src="register-firebase.js"></script>
<script src="User.js"></script>
<script src="inject-user.js"></script>
<script src="create.js"></script>
<script src="update.js"></script>
<script src="destroy.js"></script>
</head>
<body>
<h1>Open up your console to see the output</h1>
</body>
</html>
var store = new JSData.DS();
var User = store.defineResource({
name: 'user'
});
window.promise = promise.then(function (user) {
User.hasChanges(user.id); // false
// makes changes that will be detected by the store
user.role = 'admin';
return user;
}).then(function (user) {
// the store recognizes the user has been changed
User.hasChanges(user.id); // true
return User.save(user.id);
}).then(function (user) {
console.log(user); // {
// id: "/IJdkUdiJdkfoKlss",
// firstName: "Sally",
// lastName: "Jones",
// role: "admin"
// }
// the same user is still in the store
User.get(user.id) === user; // true
return user;
});
// create an instance of User
var user = User.createInstance({
id: 1,
firstName: 'John',
lastName: 'Anderson'
});
// load the user record into the store
User.inject(user);
// the user record is now in the store
User.get(1) === user; // true
User.hasChanges(1); // false
User.changes(1); // {}
// create an instance of DSFirebaseAdapter,
// pointing it to our firebase
var firebaseAdapter = new DSFirebaseAdapter({
basePath: 'https://js-data-firebase.firebaseio.com'
});
// register the adapter with the store
// and make it the default adapter
store.registerAdapter('firebase', firebaseAdapter, { default: true });
var promise = User.create({
firstName: 'Sally',
lastName: 'Jones'
}).then(function (user) {
console.log(user); // {
// id: "/IJdkUdiJdkfoKlss",
// firstName: "Sally",
// lastName: "Jones"
// }
// the new user was injected into the store
User.get(user.id) === user; // true
return user;
});
window.promise = promise.then(function (user) {
// destroy the user from Firebase
return User.destroy(user.id);
}).then(function () {
// find the "Sally" users in the data store
var users = User.filter({
where: {
firstName: {
'==': 'Sally'
}
}
});
// see? "Sally" user is no longer in the store
users.length; // 0
});