如何使用Android Studio从Firebase实时数据库中的节点检索特定数据?

时间:2019-04-20 10:15:25

标签: java android firebase firebase-realtime-database

如何使用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下的数据(值randomOnerandomTworandomThree)应该显示在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);
        }

我希望输出应为randomOnerandomTworandomThree的值,但到目前为止没有任何显示。

1 个答案:

答案 0 :(得分:1)

如果dataInput等于数据库中的ID(-bKIG89-BX78BkuO),那么您需要将引用更改为以下内容:

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

您应该将数据库从顶部节点遍历到需要检索数据的属性。