I keep copy/paste this util function in every project I'm doing...
It might be useful to other developers as it's a common task to create a proper key out of data like: email, phone, name etc'.
Relevant Code:
function encodeAsFirebaseKey (s) {
return s.replace(/%/g, '%25')
.replace(/\./g, '%2E')
.replace(/#/g, '%23')
.replace(/\$/g, '%24')
.replace(/\//g, '%2F')
.replace(/\[/g, '%5B')
.replace(/\]/g, '%5D');
}