Android firebase搜索字符串并获取它所在的子子名称

时间:2017-07-10 06:11:13

标签: android firebase firebase-realtime-database

我正在尝试执行一个查询,它将搜索代码child下的所有数据,如果有正结果,我还想知道该值所在的子名称。

enter image description here

Button bt = (Button)findViewById(R.id.button);
        bt.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                EditText input = (EditText) findViewById(R.id.editText);
                String string = input.getText().toString();
                Firebase rootRef = new Firebase("https://akiba-c9600.firebaseio.com/codes");
                Query queryRef = rootRef.orderByKey().equalTo(String.valueOf(input));
            }
        });

例如,如果我要查询 HUIYIU ,我想知道它是一个20毫克的孩子。我如何实现这一目标?

2 个答案:

答案 0 :(得分:0)

更改

  Query queryRef = rootRef.orderByKey().equalTo(String.valueOf(input));

  Query queryRef = rootRef.orderByKey().equalTo(string);

然后 实施

queryRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                    // here you will get searched data
            }
       }

答案 1 :(得分:0)

请使用此代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference codesRef = rootRef.child("codes");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        if(dataSnapshot.child("aa 20mg").child("HUIYIU").exists()) { //Check if exists
            String HUIYIU = dataSnapshot.child("aa 20mg").child("HUIYIU").getValue(String.class);
            String HUTERT = dataSnapshot.child("aa 20mg").child("HUTERT").getValue(String.class);
            Log.d("TAG", HUIYIU + " / " + HUTERT);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
codesRef.addListenerForSingleValueEvent(eventListener);

您的输出将是:

10 / 10