addListenerForSingleValueEvent не отвечает - PullRequest
0 голосов
/ 24 октября 2018

query.addListenerForSingleValueEvent(new ValueEventListener()) функция внутри него не работает.Если запрос не найден в Firebase Db, он должен получить новый запрос и отобразить его с запросом текстового поиска, не найденным.

Но все внутри него не работает

TextView search_text=findViewById(R.id.search_text);
        if(search_query!=null)
        query = FirebaseDatabase.getInstance()
               .getReference(Common.STR_WALLPAPER)
               .orderByChild("imageName")
               .startAt(search_query).endAt(search_query +"\uf8ff");
        else query = FirebaseDatabase.getInstance()
                    .getReference(Common.STR_WALLPAPER)
                    .orderByChild("imageName");
        query.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if (dataSnapshot.exists())
                {
                    search_text.setVisibility(View.GONE);
                }
                else{
                    search_text.setVisibility(View.VISIBLE);
                    search_text.setText(search_query+" not found");
                    query = FirebaseDatabase.getInstance()
                            .getReference(Common.STR_WALLPAPER)
                            .orderByChild("imageName");
                }
            }

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

            }
        });
        options = new FirebaseRecyclerOptions.Builder<WallpaperItem>()
                .setQuery(query, WallpaperItem.class)
                .build();

Функция внутриaddListenerForSingleValueEvent не отвечает.

1 Ответ

0 голосов
/ 25 октября 2018
TextView search_text=findViewById(R.id.search_text);
    if(search_query!=null)
    query = FirebaseDatabase.getInstance()
           .getReference(Common.STR_WALLPAPER)
           .orderByChild("imageName")
           .startAt(search_query).endAt(search_query +"\uf8ff");
    else query = FirebaseDatabase.getInstance()
                .getReference(Common.STR_WALLPAPER)
                .orderByChild("imageName");
    query.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            if (dataSnapshot.exists())
            {
                search_text.setVisibility(View.GONE);
            }
            else{
                search_text.setVisibility(View.VISIBLE);
                search_text.setText(search_query+" not found");
                query = FirebaseDatabase.getInstance()
                        .getReference(Common.STR_WALLPAPER)
                        .orderByChild("imageName");
            }
    options = new FirebaseRecyclerOptions.Builder<WallpaperItem>()
            .setQuery(query, WallpaperItem.class)
            .build();

        }

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

        }
    });

Поместите опцию и адаптер в addListenerForSingleValueEvent

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