如何使用Android Studio从Firebase中的特定节点ID检索数据,我可以在EditText
中输入ID?我还有一个按钮,当按下该按钮时,该按钮应显示该ID下的数据。
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
在另一个活动中,我有一个“编辑文本”,“按钮”和一个“文本视图”。用户需要输入ID(在上面的示例中为'bkIG89-BX78BkuO'),当按下按钮时,该ID下的数据(值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
的值,但到目前为止没有任何显示。
答案 0 :(得分:1)
如果dataInput
等于数据库中的ID(-bKIG89-BX78BkuO
),那么您需要将引用更改为以下内容:
reference = FirebaseDatabase.getInstance().getReference().child("CEVM").child("Random").child(dataInput);
您应该将数据库从顶部节点遍历到需要检索数据的属性。