[英]Firebase ensuring a record is not repeated
我有這個代碼:
public static void insertvote(String userkey, String categ, String candId) {
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference totalVotesRef = rootRef.child("votes").child(categ).child(candId);
Vote vote = new Vote(userkey);
totalVotesRef.push().setValue(vote.getVoterEmail());
}
它應該將投票插入到 firebase 數據庫中,在如下的投票集合中:
這個想法是通過檢查他們的電子郵件是否存在於投票中來確保選民由於完整性而只投票一次。 但是,如您所見,選民可以投票兩次。 有沒有辦法可以創建一個函數來檢查數據庫中的電子郵件是否存在,如果存在,告訴選民他們不能投票兩次? 提前致謝。
您應該使用當前用戶的 Firebase Auth UID 作為子密鑰的名稱。
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
totalVotesRef.child(uid).setValue(vote.getVoterEmail());
我給你一個想法,你考慮一下。 如果您使用共享首選項,您可以將每個電子郵件地址與布爾標志(真/假 - 投票/否)。 然后,您可以調用共享首選項並檢查每個電子郵件地址的標志的布爾值。 所以,如果這是真的——不要讓他投票。
希望我有所幫助:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.