#java #android #firebase #firebase-realtime-database
#java #Android #firebase #firebase-realtime-database
Вопрос:
Как я могу получить данные из определенного идентификатора узла в 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:
Если dataInput
равно id ( -bKIG89-BX78BkuO
) в базе данных, то вам необходимо изменить ссылку на следующее:
reference = FirebaseDatabase.getInstance().getReference().child("CEVM").child("Random").child(dataInput);
Вы должны пройти через базу данных от верхнего узла до атрибута, где вам нужно получить данные.