Android Firebase RecyclerView工作不正常,在已发布的apk中获取空值

Android Firebase RecyclerView工作不正常,在已发布的apk中获取空值,android,firebase,firebase-realtime-database,firebaseui,Android,Firebase,Firebase Realtime Database,Firebaseui,Firebase recyclerview在发布模式下未显示所需结果,但在调试模式下工作正常。它在发布模式下提供空值,但在调试应用程序模式下显示正确的值 Firebase正在回收器视图中返回空值 Firebase Recyclerview代码: //For setting time /*CarouselModel carouselModel = new CarouselModel("Tomorrow's QuizPoint at 10:00 PM","₹50,000","15625873

Firebase recyclerview在发布模式下未显示所需结果,但在调试模式下工作正常。它在发布模式下提供空值,但在调试应用程序模式下显示正确的值

Firebase正在回收器视图中返回空值

Firebase Recyclerview代码:

//For setting time
    /*CarouselModel carouselModel = new CarouselModel("Tomorrow's QuizPoint at 10:00 PM","₹50,000","1562587387000","1562587389000");
    quizTiming.push().setValue(carouselModel);*/

    Query query = FirebaseDatabase.getInstance()
            .getReference()
            .child("quizTimings");

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

    scrollView = (RecyclerView) findViewById(R.id.picker);

    adapter = new FirebaseRecyclerAdapter<CarouselModel, TimeViewHolder>(options) {

        @Override
        public TimeViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
            View view = LayoutInflater.from(viewGroup.getContext())
                    .inflate(R.layout.item_time, viewGroup, false);

            return new TimeViewHolder(view);
        }

        @Override
        protected void onBindViewHolder(TimeViewHolder timeViewHolder, int i, final CarouselModel carouselModel) {

            try {
                if (carouselModel.getTime()!=null && !carouselModel.getTime().isEmpty()){
                    String quizTimings = carouselModel.getTime();
                    timeViewHolder.timeShow.setText(quizTimings);
                }else {
                    timeViewHolder.timeShow.setText("error Time");
                }

                if (carouselModel.getTimeMoney()!=null && !carouselModel.getTimeMoney().isEmpty()){
                    String timeMoney = carouselModel.getTimeMoney();
                    timeViewHolder.timeMoney.setText(timeMoney);
                }else {
                    timeViewHolder.timeMoney.setText("error TimeMoney");
                }
            } catch (Exception ex) {
                String err = (ex.getMessage()==null)?"QuizTiming error":ex.getMessage();
                Log.e("quiztiming logs","error "+err);
            }
        }
    };

    CustomLinearLayout linearLayoutManager = new CustomLinearLayout(this,LinearLayoutManager.HORIZONTAL,false);

    scrollView.addItemDecoration(new LinePagerIndicatorDecoration(MainActivity.this));
    scrollView.setLayoutManager(linearLayoutManager);
    scrollView.setAdapter(adapter);
您必须从Playstore控制台更新最新的SHA1密钥 Playstore控制台->发布管理->应用程序签名->应用程序签名证书顶部->SHA1副本 并粘贴到Firebase->项目设置->添加指纹

现在下载最新的google-service.json文件,并在android studio中替换该文件

如果minifyEnabled true build.gradleapp,则必须在proguard-rules.pro中编写程序规则

您必须从Playstore控制台更新最新的SHA1密钥 Playstore控制台->发布管理->应用程序签名->应用程序签名证书顶部->SHA1副本 并粘贴到Firebase->项目设置->添加指纹

现在下载最新的google-service.json文件,并在android studio中替换该文件

如果minifyEnabled true build.gradleapp,则必须在proguard-rules.pro中编写程序规则


确保您的pojo类是公共的,并添加

@Keep
如果正在使用,则指向用于检索和显示firebase数据的pojo类

minifyEnabled true

确保您的pojo类是公共的,并添加

@Keep
如果正在使用,则指向用于检索和显示firebase数据的pojo类

minifyEnabled true

是的,我已经做过了。这些不是问题所在。我正在从firebase获取数据,并从其他节点使用它。如果启用了minifyEnabled true build.gradleapp,你必须在proguard-rules中编写程序规则。是的,我已经这样做了。这些不是问题所在。我正在从firebase获取数据,并从其他节点使用它。只是recyclerview不起作用。这个怎么样->如果启用了minifyEnabled true build.gradleapp,你必须在proguard-rules.proThanks中编写程序规则。它解决了这个问题。我不得不在proguard文件中添加keep语句,现在recyclerview在发布版本中也能正常工作。非常感谢。它解决了这个问题。我不得不在proguard文件中添加keep语句,现在recyclerview在发布的版本中也能正常工作。