how we're using firebase at boiler room

19
@productgang @boilerroomtv

Upload: lukas-klein

Post on 16-Jul-2015

37 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: How we're using Firebase at Boiler Room

@productgang @boilerroomtv

Page 2: How we're using Firebase at Boiler Room

A custom chat for Boiler Room

Page 3: How we're using Firebase at Boiler Room
Page 4: How we're using Firebase at Boiler Room
Page 5: How we're using Firebase at Boiler Room
Page 6: How we're using Firebase at Boiler Room

AngularFire

JWT

Page 7: How we're using Firebase at Boiler Room
Page 8: How we're using Firebase at Boiler Room

Date mess-up thanks to using client local time

Page 9: How we're using Firebase at Boiler Room

comment.date = Firebase.ServerValue.TIMESTAMP; // FTW!

Page 10: How we're using Firebase at Boiler Room

Moderators could delete single comments but we also needed a way to ban users..

Page 11: How we're using Firebase at Boiler Room
Page 12: How we're using Firebase at Boiler Room
Page 13: How we're using Firebase at Boiler Room

var until = Date.now() + ($scope.ban.timeframe * 60 * 1000); commentsRef.root().child('banned_users/' + $scope.ban.uid).set(until);

Page 14: How we're using Firebase at Boiler Room

"uid": { ".validate": "!root.child('banned_users').child(auth.id).exists()" }

Validation Rules

Page 15: How we're using Firebase at Boiler Room

child() expects a string argument.

Page 16: How we're using Firebase at Boiler Room

"uid": { ".validate": "!root.child('banned_users').child(auth.id + '').exists()" }

Validation Rules

Page 17: How we're using Firebase at Boiler Room

var setBannedUsers = function(snap) { bannedUsers = snap.val(); };

var checkBannedUsers = function() { var time = Date.now(); for(bannedUser in bannedUsers) { if(bannedUsers[bannedUser] < time) { rootRef.child('banned_users/' + bannedUser).remove(); } } }

rootRef.child('banned_users').on('value', setBannedUsers); setInterval(checkBannedUsers, 10000);

Page 18: How we're using Firebase at Boiler Room

Thank you.

Page 19: How we're using Firebase at Boiler Room

@productgang

@boilerroomtv

@lks_kln