Получение существующего дочернего ключа firebase - PullRequest
0 голосов
/ 12 марта 2019

imageDatabase image">

Я хочу проверить, существует ли уже ключ даты, затем показать Toast else. Загрузите посещаемость. Если дочерний ключ посещаемости уже существует.

DBreference.addChildEventListener(new ChildEventListener() {
               @Override
               public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

                   //i want to check if data is available along with the key which is "date".
                   //then show msg data already exists else upload the attendance

                   date = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(new Date());
                   String present = "Present";
                   DBreference.child("Attendance").child(date).setValue(present);
                   Toast.makeText(ProfileAct.this, "Marked as Present", Toast.LENGTH_SHORT).show();
               }

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

               }
           });

Ответы [ 2 ]

1 голос
/ 13 марта 2019

Попробуйте это

FirebaseDatabase.getInstance().getReference().child("Users").child(FirebaseAuth.getInstance().getUid()).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if (dataSnapshot.exists()) {
                    if (dataSnapshot.child("Attendance").exists()) {
                        Toast.makeText(ProfileAct.this, "Already Exists", Toast.LENGTH_SHORT).show();
                    } else {
                        date = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(new Date());
                        String present = "Present";
                        dataSnapshot.child("Attendance").child(date).setValue(present);
                    }
                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

Я надеюсь, что это может помочь вам!

Спасибо.

0 голосов
/ 13 марта 2019
 AttendRef.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                      if (dataSnapshot.exists()){
                          Toast.makeText(ProfileAct.this, "Already Exists", Toast.LENGTH_SHORT).show();
                      }
                      else {
                          String val="Present";
                          AttendRef.child(date).setValue(val);
                      }
                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {

                }
            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...