无法将帖子标记为收藏

时间:2018-08-17 08:43:10

标签: android firebase firebase-realtime-database

大家好,我正在Firebase的帮助下制作一个android应用程序。该应用程序运行正常,但是自从我尝试添加收藏夹按钮的功能以来,我无法从代码的“添加收藏夹”部分中获取错误。     current_state =“ not av” 上面的部分说明了用户当前的收藏夹状态。 以下代码用于“添加收藏夹”部分。

 Holder.mFavourites.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (current_state.equals("not fav")){
                        mFav.child(puid).child(kk).child("fav_status").setValue("Added as " +
                                "fav").addOnSuccessListener(new OnSuccessListener<Void>() {
                            @Override
                            public void onSuccess(Void aVoid) {

                                Holder.mFavourites.setImageDrawable(getContext().getDrawable(R.drawable.ic_star_black));
                                current_state = "fav";
                               Toast.makeText(getContext(),"Added to favourites",Toast
                                       .LENGTH_SHORT).show();
                            }
                        });
                    }else if (current_state.equals("fav")){
                        mFav.child(puid).child(kk).removeValue().addOnCompleteListener(new OnCompleteListener<Void>() {
                            @Override
                            public void onComplete(@NonNull Task<Void> task) {
                                if (task.isSuccessful()){


                                    Holder.mFavourites.setImageDrawable(getContext().getDrawable(R.drawable.ic_star_border_black_24dp));
                                    current_state = "not fav";
                                    Toast.makeText(getContext(),"Removed from favourites",Toast
                                            .LENGTH_SHORT).show();
                                }

                            }
                        });
                    }

                }
            });

我在上面的代码上遇到了问题- 1.每当用户第一次单击代码时。他被添加到收藏夹,并且如果再次单击相同的按钮,则将其从收藏夹中删除,但是如果用户单击一次(即在被添加为收藏夹之后)继续前进,然后再次单击添加到收藏夹按钮,则无论用户是否在“收藏夹”数据库中,都将显示“从收藏夹中删除”的吐司。

1 个答案:

答案 0 :(得分:0)

current_state是等于“ not fav”的类变量吗?因为看起来您的if语句只是在读取字符串,实际上并不知道数据库中发生了什么。如果您将所有收藏夹查询到arraylist并针对该arraytest测试if语句,该怎么办