Если я активирую какой-то запрос, Firebase-адаптер не работает, хотя другие работают. - PullRequest
0 голосов
/ 29 января 2019

Firepase не работает.так что мой реселлервью не показывает.я пытаюсь разделить страницы с помощью базы данных firebased.если я нажимаю кнопку 1, он должен показывать 1 ~ 3поста.button2, он должен показывать 4 ~ 6постов и так далее ...

Я много чего пробовал ... попробуйте добавить тег.Я считаю, что он получает необходимые данные от других функций.и перейти к функции выборки для активации моего запроса.но он не играет роль адаптера в методе выборки.

 private void awesomeButtonClicked(final MyCallback2 myCallback) {

    if (left == 0) {
        if(listcallback3!=null) {
            databaseReference3 = FirebaseDatabase.getInstance().getReference().child("posts");
            query2 = databaseReference3.orderByChild("date2").startAt((listcallback3.get(3*hint))).endAt(listcallback3.get((hint * 3)+2) );
            Log.d("bbb", "" + hint);
            fetch(query2);
            Log.d("bbb", "" + hint);
        }
        databaseReference.orderByChild("date2").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                List<Long> list = new ArrayList<>();
                for(DataSnapshot ds : dataSnapshot.getChildren()) {
                 Long eventID = ds.child("date2").getValue(Long.class);
                 list.add(eventID);
                 myCallback.onCallback(list);

                     }

             }



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

            }
        });


    }

    else {

        if(listcallback3!=null) {
            Log.d("tagtagggg", "" + hint);
            databaseReference4 = FirebaseDatabase.getInstance().getReference().child("posts");
            query3 = databaseReference4.orderByChild("date2").startAt((listcallback3.get(hint*3))).endAt(listcallback3.get((hint * 3)+2) );


            fetch(query3);

        }
        databaseReference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                list = new ArrayList<>();
                for(DataSnapshot ds : dataSnapshot.getChildren()) {
                    eventID = ds.child("date2").getValue(Long.class);

                    list.add(eventID);
                    myCallback.onCallback(list);
                }

            }
            @Override
            public void onCancelled(DatabaseError error) {

            }
        });


    }
}




                private void fetch (Query query){

                    Log.d("fragment_two", "10" + query);
                    FirebaseRecyclerOptions<Post> options =
                            new FirebaseRecyclerOptions.Builder<Post>()
                                    .setQuery(query, Post.class)
                                    .setLifecycleOwner(this)
                                    .build();

                    Log.d("fragment_two", "11" + options);

                    adapter = new FirebaseRecyclerAdapter<Post, ViewHolder>(options) {
                        @Override
                        public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                            Log.d("fragment_two", "19");
                            View view = LayoutInflater.from(parent.getContext())
                                    .inflate(R.layout.list_item, parent, false);
                            Log.d("fragment_two", "19");
                            // String.valueOf(adapter.getItemCount());
                            ViewHolder holder = new ViewHolder(view);
                            Log.d("fragment_two", "19");

                            return holder;


                        }

нажмите кнопку, я хочу получить данные.но часть адаптера не работает вообще.другие запросы работают нормально.по тегам, адатер работает хорошо.но метод awesomebuttonclicked не создает 'Log.d ("gment_two "," 19 ");'работа

1 Ответ

0 голосов
/ 29 января 2019

я нашел ответ.это была проблема типа.я поместил длинный тип startat (), endat (), потому что мне нужно использовать метку времени, кажется, что firebase startat () не принимает длинное число, например 123456789123456789. поэтому я изменил длинный тип на строковый тип.

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