how we're using firebase at boiler room
TRANSCRIPT
@productgang @boilerroomtv
A custom chat for Boiler Room
AngularFire
JWT
Date mess-up thanks to using client local time
comment.date = Firebase.ServerValue.TIMESTAMP; // FTW!
Moderators could delete single comments but we also needed a way to ban users..
var until = Date.now() + ($scope.ban.timeframe * 60 * 1000); commentsRef.root().child('banned_users/' + $scope.ban.uid).set(until);
"uid": { ".validate": "!root.child('banned_users').child(auth.id).exists()" }
Validation Rules
child() expects a string argument.
"uid": { ".validate": "!root.child('banned_users').child(auth.id + '').exists()" }
Validation Rules
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);
Thank you.
@productgang
@boilerroomtv
@lks_kln