Firebase: запрос внутреннего потомка, не зная родителя - PullRequest
0 голосов
/ 05 мая 2019

Итак, я хочу знать, есть ли способ запроса на основе внутреннего дочернего элемента без необходимости знать родителя в базе данных Firebase?Вот точная ситуация: как показано на рисунке, я хочу запросить весь моментальный снимок данных, где title = "bj", так как я выдвинул их автоматически, поэтому я не знаю ключа (или родителя в этом случае).Мне любопытно, есть ли у Fb Query возможность в любом случае заглянуть во вложенные дочерние объекты?TIA enter image description here

private void fetchPinnedLocationsForSearchbar(String key) {

        Query query = MyApplication.database.getReference("/pins/").child("title").orderByKey().equalTo(key);
        query.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                Log.e("-->X-DATA-FROM-QUERY", dataSnapshot.toString());
                for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
                    final BusinessModel pinItModel = new BusinessModel();
                    if (((Boolean) dataSnapshot1.child("ifBusiness").getValue())) {
                        if  
                            BusinessModel pinItModelTest = dataSnapshot1.getValue(BusinessModel.class);

                            Log.e("->PicCount", pinItModelTest.getPicCount() + "");
//
                            _data.add(pinItModelTest);


                }

            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });
    }

1 Ответ

1 голос
/ 05 мая 2019

Так что я нашел ответ из другого поста на StackOverFlow, в котором предлагалось, что решение должно быть примерно таким:

FirebaseDatabase.getInstance().getReference("pins").orderByChild("title").equalTo("bj").addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
                Log.e("-->X--ChildAddedQUERY", dataSnapshot.toString()+"---"+s);

            }

            @Override
            public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

            }

            @Override
            public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {

            }

            @Override
            public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

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