为每个条目存储一个索引,如下所示:
/wishes/$wishid/ (song, artist)
/wish_index/$hash/$wishid
Create $hash
用一个哈希算法 http://phpjs.org/functions/md5/:
var fb = new Firebase(URL);
function saveWishEntry( song, artist ) {
var wishRef = fb.child('wishes').push();
wishRef.set({
song: song, artist: artist, likes: 0
}, function(err) {
if( err ) throw err;
saveWishIndex(wishRef.name(), song, artist);
})
}
function saveWishIndex(key, song, artist) {
// http://phpjs.org/functions/md5/
var hash = MD5(song)+':'+MD5(artist);
fb.child('wish_index/'+hash).set(key);
}
现在,当您想知道记录是否存在时,只需在索引中查找即可:
// callback will be passed either a {string}key or null(not found)
function wishId(song, artist, callback) {
fb.child('wish_index/'+hash).once('value', function(snap) {
callback( snap.val() );
});
}