Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何限制用户多次输入值Android和firebase_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

如何限制用户多次输入值Android和firebase

如何限制用户多次输入值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

我正在用firebase realtime DB创建一个android应用程序。用户可以输入事件代码并获得分数

如何限制用户多次输入同一代码

以下代码将用户积分增加1,活动参与者增加1。递增后,我将事件保存到用户Id集合中,该集合包含用户参加的所有事件

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) {

            }
        });
    }