node.js - Firebase calling `child(all).equalTo(id)` -
i check children contains child value variable id.
this came with:
usersref.child(formdata.openid + '/votes').child().equalto(formdata.appid).once('value', function(snapshot) {}); this returned: firebase.child failed: called 0 arguments. expects @ least 1.
also tried:
usersref.child(formdata.openid + '/votes').orderbykey().equalto(formdata.appid).once('value', function(snapshot) {}); this doesn't throw error doesn't return value.
usersref.child(formdata.openid + '/votes').orderbychild('a').equalto(formdata.appid).once('value', function(snapshot) {}); usersref.child(formdata.openid + '/votes').orderbychild('b').equalto(formdata.appid).once('value', function(snapshot) {}); usersref.child(formdata.openid + '/votes').orderbychild('c').equalto(formdata.appid).once('value', function(snapshot) {}); ... usersref.child(formdata.openid + '/votes').orderbychild('z').equalto(formdata.appid).once('value', function(snapshot) {}); this works, needs go through lot of requests.
data structure:
{ "azxaxacf7ueoosmllh5vp4" : { "favorites" : { "3811" : true, "3910" : true }, "votes" : { "-kragbsn8bhop70uuisb" : { "upvote" : "3811" }, "-kragcxu3gr-pqpuces8" : { "downvote" : "3811" }, "-kragkjp4ogivif9qjml" : { "upvote" : "3910" }, "-kragroy156zy5pxor-g" : { "upvote" : "3903" }, "-krahhnkp2isqneyzs2g" : { "downvote" : "3903" }, "-krahr2zanh6flz3xn4t" : { "upvote" : "3280" }, "-krakltqwli9q7j8mq8w" : { "upvote" : "3653" }, "-kram0quqeu9tyehyese" : { "downvote" : "3910" }, "-kram5mfgo-ww1e-azk_" : { "downvote" : "2858" }, "-kramvvgsedwkur_2ece" : { "downvote" : "2411" }, "-kramwf-4oaycb0gg3sh" : { "upvote" : "2411" }, "-kramifsigq06jfvg0q_" : { "upvote" : "2344" } } }, "clsaipzci5re0a5rvchuaa" : { "favorites" : { "3811" : true, "3884" : true, "3970" : true }, "votes" : { "-kra4o-j3vewbxwudvbo" : { "downvote" : "3849" }, "-kra4tv883o2n6_tz_-p" : { "upvote" : "3884" }, "-kra4wy5jfbnm1xod-lu" : { "downvote" : "3884" }, "-kra54vexvgk6yksw_i6" : { "upvote" : "3778" }, "-kra5cs3iyrskvh8zbmi" : { "upvote" : "3764" } } }, "chzvupegjig0bymchinjre" : { "favorites" : { "3811" : true, "3910" : true }, "votes" : { "-krafniozpfqhvvotfxh" : { "downvote" : "3811" }, "-krafq_ym9g9jplxx1on" : { "upvote" : "3811" }, "-krafcefnivtfu8vkhgj" : { "upvote" : "3910" }, "-kraffaweo7km6jn_dk5" : { "downvote" : "3678" }, "-kraflsgxjl_5owfgszd" : { "downvote" : "3778" }, "-krafpsrnel4cjqn217w" : { "downvote" : "3769" } } }, "i1sko3uk8bmeet9fppvpuo" : { "votes" : { "-krafmanooldofoicwh2" : { "upvote" : "3910" } } }, "k_a5kz2pdgyfoibmt8jgxc" : { "votes" : { "-kracl3jawwyed_ylvan" : { "downvote" : "3764" } } }, "logzs_zextpm8av6yollkm" : { "favorites" : { "3811" : true, "3970" : true }, "votes" : { "-kra1hnvsryngomq0xzk" : { "downvote" : "3970" }, "-kra1owl52ffuehk7-yq" : { "upvote" : "3970" }, "-kra1zlvzxo4ttxquazu" : { "upvote" : "3851" }, "-kra1bkiwj0anyj-f4sr" : { "downvote" : "3851" }, "-kra1fljik6czt6bw2di" : { "upvote" : "3778" }, "-kra1su1fpspxcsh-nkc" : { "upvote" : "3903" }, "-kra1wxxydnqqzcyi0zo" : { "upvote" : "3811" } } }, "oufamslsiabjc0ou2oqa2c" : { "favorites" : { "2896" : true }, "votes" : { "-kra4zr7j5rfv8x96bpp" : { "upvote" : "3903" }, "-kra5-mupidqiv-xbm5e" : { "downvote" : "3903" }, "-kra50zodlpn-hz_m3_p" : { "upvote" : "3903" }, "-kra5ouuuqmiihbf0kut" : { "upvote" : "3903" }, "-kra5pql4h0on-mssnjr" : { "upvote" : "3903" }, "-kradbd0hretdaq7ia0q" : { "downvote" : "2896" }, "-kradcihyimnvry-uzu3" : { "upvote" : "2896" }, "-kradu_d25jmx69toavb" : { "upvote" : "3811" }, "-krakdw3b7rsg3fhr2o-" : { "upvote" : "3778" }, "-krakgwujmdihppl2wh2" : { "upvote" : "3885" } } } }
there no firebase database api search through children specific value.
the best can think of creating inverted index of values votes have value in child. so:
app_index appid1 voteid1: true voteid2: true voteid3: true appid2 voteid1: true voteid3: true appid3 voteid2: true voteid4: true with can votes specific app id.
Comments
Post a Comment