Как получить размер списка потомков в firebase, используя java в andoird? - PullRequest
1 голос
/ 02 октября 2019

У меня есть какая-то кнопка, название кнопки изменится на «вставить свой пин», если list size from child "pin" on firebase != 0.

Там, добавить новый пин-код, действительно работающий, но как определить, если size != 0

Мой код:

reference.child("pin").child(userID).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                for (DataSnapshot snapshot : dataSnapshot.getChildren()){
                    Pin pinLogin = snapshot.getValue(Pin.class);
                    pinLogin.setKey(pinLogin.getKey());

                    pin.add(pinLogin);
                }
            }

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

            }
        });

Логика My Button:

          if(pin.size == 0){
                        reference.child("pin").child(userID).push()
                                .setValue(new Pin(pinEditText))
                                .addOnSuccessListener(new OnSuccessListener<Void>() {
                                    @Override
                                    public void onSuccess(Void aVoid) {
                                        dialog.setTitleText("Success");
                                        dialog.setContentText("Pin Has Been Added!");
                                        dialog.show();
                                    }
                                })
                                .addOnFailureListener(new OnFailureListener() {
                                    @Override
                                    public void onFailure(@NonNull Exception e) {
                                        dialogError.setTitleText("Error");
                                        dialogError.setContentText(e.getMessage());
                                    }
                                });
                  }else{
                     button.setText("Insert Your Pin");

Любая помощь будет признательна

1 Ответ

2 голосов
/ 02 октября 2019

Для получения размера используйте dataSnapshot.getChildrenCount()

reference.child("pin").child(userID).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                long size= dataSnapshot.getChildrenCount();

                for (DataSnapshot snapshot : dataSnapshot.getChildren()){
                    // rest of code
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...