আপনি যেমন যান তেমন গণনা সংরক্ষণ করুন - এবং এটি প্রয়োগের জন্য বৈধতা ব্যবহার করুন। আমি একসাথে হ্যাক করেছি - একটি অনন্য ভোট এবং গণনা রাখার জন্য যা সামনে আসে !. এবারও আমার পরামর্শ পরীক্ষা করে দেখলাম! (কাট / পেস্ট ত্রুটি সত্ত্বেও!)।
'কৌশল' এখানে নোড অগ্রাধিকারটি ভোট গণনা হিসাবে ব্যবহার করা ...
তথ্যটি হ'ল:
ভোট / $ ইস্যুবিংভোটডন / ইউজার / $ অনন্যআইডঅফভোটার = এইভোটসাউন্ট, অগ্রাধিকার = এইভোটসকাউন্ট ভোট / $ ইস্যুবিংভোটডন / কাউন্ট = 'ইউজার /' + $ আইডোফ্লাস্টভোটার, অগ্রাধিকার = কাউন্টফ্লোস্টভোট
,"vote": {
".read" : true
,".write" : true
,"$issue" : {
"user" : {
"$user" : {
".validate" : "!data.exists() &&
newData.val()==data.parent().parent().child('count').getPriority()+1 &&
newData.val()==newData.GetPriority()"
ব্যবহারকারী কেবল একবার ভোট দিতে পারে && গণনা অবশ্যই বর্তমান গণনার তুলনায় একটি উচ্চ হতে হবে এবং ডেটা মান অবশ্যই অগ্রাধিকার হিসাবে একই হতে হবে।
}
}
,"count" : {
".validate" : "data.parent().child(newData.val()).val()==newData.getPriority() &&
newData.getPriority()==data.getPriority()+1 "
}
গণনা (সত্যই সর্বশেষ ভোটার) - ভোট অবশ্যই উপস্থিত থাকতে হবে এবং এর গণনা সমান নতুন গণনা, && নতুন গণনা (অগ্রাধিকার) কেবল একজনের কাছে যেতে পারে।
}
}
বিভিন্ন ব্যবহারকারীর দ্বারা 10 টি ভোট যুক্ত করার জন্য স্ক্রিপ্ট স্ক্রিপ্ট (উদাহরণস্বরূপ, আইডির নকল, ব্যবহারকারীর প্রযোজনে auth.uid হওয়া উচিত)। বৈধতা ব্যর্থ দেখতে 10 (i--) দ্বারা গণনা করুন।
<script src='https://cdn.firebase.com/v0/firebase.js'></script>
<script>
window.fb = new Firebase('https:...vote/iss1/');
window.fb.child('count').once('value', function (dss) {
votes = dss.getPriority();
for (var i=1;i<10;i++) vote(dss,i+votes);
} );
function vote(dss,count)
{
var user='user/zz' + count; // replace with auth.id or whatever
window.fb.child(user).setWithPriority(count,count);
window.fb.child('count').setWithPriority(user,count);
}
</script>
এখানে 'ঝুঁকি' হ'ল একটি ভোট দেওয়া হয়েছে, তবে গণনাটি আপডেট হয়নি (হ্যাকিং বা স্ক্রিপ্ট ব্যর্থতা)। এ কারণেই ভোটের একটি অনন্য 'অগ্রাধিকার' রয়েছে - বর্তমান গণনার চেয়ে অগ্রাধিকারের সাথে কোনও ভোট নেই বলে নিশ্চিত করে স্ক্রিপ্টটি সত্যই শুরু করা উচিত, যদি এটির নিজস্ব কাজ করার আগে সেই লেনদেনটি সম্পন্ন করা উচিত - আপনার ক্লায়েন্টকে পরিষ্কার করার জন্য আপনার জন্য আপ :)
আপনি শুরু করার আগে গণনাটিকে একটি অগ্রাধিকার দিয়ে শুরু করা দরকার - ফরজ আপনাকে এটি করতে দেয় না, সুতরাং স্টাব স্ক্রিপ্টের প্রয়োজন হয় (বৈধতা কার্যকর হওয়ার আগে!)।