Как я могу взять только одну информацию из базы данных Firebase? - PullRequest
0 голосов
/ 05 июля 2019

Я хочу знать, как получить одну информацию из списка ключей

Я знаю ключ

, но что я хочу просто получить из одной информации, которую я сохранил

я не понимаю, почему он равен нулю

в значении 'petcode' сохраняется ключ

enter image description here

Это то, что я пытаюсь получить для данных petname

reference = FirebaseDatabase.getInstance().getReference().child("Pets").child(firebaseUser.getUid()).child(petcode);


        reference.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                petname = String.valueOf(dataSnapshot.child("petname"));
            }

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

            }
        });

, но когда я вижу, что значение petname журнала равно нулю, как я могу получить от него данные?

Ответы [ 2 ]

1 голос
/ 05 июля 2019

попробуйте это: -

ref.child("-LiCZpsymgNgtNcCinpHR5").child("petname").addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot snapshot) {
        try {
            if (snapshot.getValue() != null) {
                try {
                    Log.e("TAG", "" + snapshot.getValue()); // your name values you will get here
                } catch (Exception e) {
                    e.printStackTrace();
                }
            } else {
                Log.e("TAG", " it's null.");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onCancelled(FirebaseError firebaseError) {
        Log.e("onCancelled", " cancelled");
    }
});
0 голосов
/ 05 июля 2019
    DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().child("Pets").child(firebaseUser.getUid()).child(petcode).child("petname");
        databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                String petname = dataSnapshot.getValue(String.class);                       
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
                conformDialog.setMessage("Something bad happened!, try again");
                conformDialog.setCancelable(true);
                conformDialog.setCanceledOnTouchOutside(true);
            }
        });

и не используйте addValueEventListener для одного события, оно будет отслеживать вечно

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