如何限制用户多次输入值Android和firebase
我正在用firebase realtime DB创建一个android应用程序。用户可以输入事件代码并获得分数 如何限制用户多次输入同一代码 以下代码将用户积分增加1,活动参与者增加1。递增后,我将事件保存到用户Id集合中,该集合包含用户参加的所有事件如何限制用户多次输入值Android和firebase,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我正在用firebase realtime DB创建一个android应用程序。用户可以输入事件代码并获得分数 如何限制用户多次输入同一代码 以下代码将用户积分增加1,活动参与者增加1。递增后,我将事件保存到用户Id集合中,该集合包含用户参加的所有事件 checkCode(eCode); if(!found){ Query eByCode = FirebaseDatabase.getInstance().getReference("Studen
checkCode(eCode);
if(!found){
Query eByCode = FirebaseDatabase.getInstance().getReference("StudentEvents/").orderByChild("code")
.equalTo(eCode);
eByCode.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
Event event = dataSnapshot.getValue(Event.class);
int numAttend = Integer.parseInt(event.getNumAttended());
String eKey = dataSnapshot.getKey();
numAttend++;
DatabaseReference eDatabase = database.getReference().child("StudentEvents/" + eKey);
eDatabase.child("numAttended").setValue(Integer.toString(numAttend));
sPoints = sPoints + 1;
mDatabase.child("points").setValue(sPoints);
point = (TextView) findViewById(R.id.tvPoints);
point.setText(Integer.toString(sPoints));
DatabaseReference d = database.getReference(uId +"/"+ eKey);
d.setValue(event);
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
inpCode.getText().clear();
}
private void checkCode(String eCode) {
Query db = database.getReference(uId).orderByChild("code").equalTo(eCode);
db.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
if(dataSnapshot.getValue() != null){
found = true;
}else{
found = false;
}
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}