【问题标题】:How to increment value in my firebase database? [duplicate]如何在我的 Firebase 数据库中增加价值? [复制]
【发布时间】:2021-05-09 21:38:51
【问题描述】:

请帮帮我 我正在制作一个投票应用程序

我已经到了一个阶段,我想选择一个会增加数据库投票数的人,但我不知道该怎么做

我想要一个方法。当用户点击应用程序中的名称时,count 在数据库中从 1 增加到 2,并在每次点击时继续增加

我想从数据库中读取计数,然后在单击应用程序中的按钮或文本名称时增加它

如何在我的代码中使用 Transaction 来做到这一点取决于我的数据库?

RecyclerView raees_RecyclerView;
private DatabaseReference databaseReference;
private ArrayList <Condidate> candidateArrayList;
private Context context;
FirebaseRecyclerAdapter<Condidate, RaeesRecyclerViewAdapter> adapter;
Button vote;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.raees__at7ad);

    raees_RecyclerView = findViewById(R.id.raees_recyclerView);
    LinearLayoutManager layoutManager =new LinearLayoutManager(this);
    raees_RecyclerView.setLayoutManager(layoutManager);
    raees_RecyclerView.setHasFixedSize(true);
    vote = findViewById(R.id.voteBtn);
    databaseReference = FirebaseDatabase.getInstance().getReference("المرشحون").child("رئيس اتحاد الطلبة");

    candidateArrayList = new ArrayList <>();

    loadDataFromfirebaseToRecyclerView();

}

private void loadDataFromfirebaseToRecyclerView() {
    FirebaseRecyclerOptions <Condidate> options = new FirebaseRecyclerOptions.Builder<Condidate>()
            .setQuery(databaseReference,Condidate.class)
            .build();
    FirebaseRecyclerAdapter<Condidate, RaeesRecyclerViewAdapter> firebaseRecyclerAdapter =
            new FirebaseRecyclerAdapter <Condidate, RaeesRecyclerViewAdapter>(options) {
                @Override
                protected void onBindViewHolder(@NonNull final RaeesRecyclerViewAdapter viewHolder, int postion, @NonNull Condidate condidate) {

                    viewHolder.textView.setText(condidate.getName());

                    final Condidate clickItem= condidate;

                    viewHolder.setItemClickListener(new RecyclerViewInterface() {
                        @Override
                        public void onClick(View view, int position, boolean isLongClick) {

                            // the method for make count increment in database here can help pls

                        }
                    }); }

                @NonNull
                @Override
                public RaeesRecyclerViewAdapter onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                    View view = LayoutInflater.from(parent.getContext())
                            .inflate(R.layout.raees_card,parent,false);

                    return new RaeesRecyclerViewAdapter(view);
                }
            };

    firebaseRecyclerAdapter.startListening();
    raees_RecyclerView.setAdapter(firebaseRecyclerAdapter);
}

////////

public TextView textView;

private RecyclerViewInterface recyclerViewInterface;

public RaeesRecyclerViewAdapter(@NonNull View itemView) {
    super(itemView);

    textView=itemView.findViewById(R.id.raeesName);
    itemView.setOnClickListener(this);
}

public void setItemClickListener(RecyclerViewInterface itemClickListener) {
    this.recyclerViewInterface = itemClickListener;
}

@Override
public void onClick(View view) {
    recyclerViewInterface.onClick(view,getAdapterPosition(),false);

}

【问题讨论】:

    标签: android firebase-realtime-database


    【解决方案1】:
      for(DataSnapshot dataSnapshot : snapshot.getChildren()) {
    
                                            if(dataSnapshot.child("name").getValue().toString() == viewHolder.textView.getText()) {
                                                id = dataSnapshot.getKey();
                                                Integer count = snapshot.child(id).child("count").getValue(Integer.class);
    
                                                databaseReference.child(id).child("count").setValue(count + 1);
                                                break;
                                            }
                                        }
                                        Toast.makeText(naeeb_Ameen_nshat_fnee.this, "done", Toast.LENGTH_SHORT).show();
    

    【讨论】:

      猜你喜欢
      • 2014-06-30
      • 2023-03-23
      • 1970-01-01
      • 2017-07-05
      • 1970-01-01
      • 2012-12-14
      • 2018-11-13
      • 2015-11-04
      • 1970-01-01
      相关资源
      最近更新 更多