Как получить конкретные данные из узла в базе данных Firebase Realtime с помощью Android Studio? - PullRequest
1 голос
/ 20 апреля 2019

Как я могу получить данные из определенного идентификатора узла в Firebase, используя Android Studio, где у меня есть действие для ввода идентификатора в EditText? Также у меня есть кнопка, которая при нажатии должна отображать данные под этим идентификатором.

Firebase DB Format:(As I cant upload image)
--> CEVM
     --Random
       --bKIG89-BX78BkuO
             randomFirst:  "b97kj"
             randomSecond: "87ayI"
             randomThird: "AG9bw"

Я приложил код ниже. Я закончил с загрузкой данных в базу данных, которая имеет

CEVM-->Random-->bkIG89-BX78BkuO(ID)-->randomOne,randomTwo,randomThree

В другом упражнении у меня есть Редактировать текст, Кнопку и Текстовое представление. Пользователь должен ввести идентификатор (в приведенном выше примере «bkIG89-BX78BkuO»), и при нажатии кнопки данные под этим идентификатором (значения randomOne, randomTwo, randomThree) должны отображаться в TextView .

Для загрузки данных в Firebase:

public String addRandom(){
    String firstRandom = randomOne.getText().toString();
    String secondRandom = randomTwo.getText().toString();
    String thirdRandom = randomThree.getText().toString();

    String id = databaseRandom.push().getKey();
    randomNumber random = new randomNumber(firstRandom,secondRandom,thirdRandom);
    databaseRandom.child(id).setValue(random);
    String code = id;
    return code;
}

Для получения: (Я пытался, но я не уверен, что должно быть сделано)

mVerifyBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            String dataInput = mSearch.getText().toString();

            reference = FirebaseDatabase.getInstance().getReference().child(dataInput);

        }
    });
}

public void buttonClick(View view){
    reference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            String randomOne = dataSnapshot.child("randomFirst").getValue().toString();
            mViewData.setText(randomOne + randomTwo + randomThree);
        }

Я ожидаю, что на выходе должны быть значения randomOne, randomTwo и randomThree, но пока ничего не отображается.

1 Ответ

1 голос
/ 20 апреля 2019

Если dataInput равно идентификатору (-bKIG89-BX78BkuO) в базе данных, вам нужно изменить ссылку на следующее:

reference = FirebaseDatabase.getInstance().getReference().child("CEVM").child("Random").child(dataInput);

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

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