如何更新Firebase中的特定值

时间:2019-04-14 19:07:08

标签: java android firebase firebase-realtime-database

我正在尝试更新Firebase中的特定值。 每当我单击like按钮(holder.like)时,必须从Firebase实时数据库中获取mlikecount的当前值,并将其递增1,并将其存储回firebase中。 我尝试做,但是它创建了一个新节点,请帮忙。 这是我的onbindViewHolder。

@Override
public void onBindViewHolder(final FeedAdapter.FeedViewHolder holder, int position) {



    holder.like.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Snackbar.make(v, "Like", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();

        }
    });

}

1 个答案:

答案 0 :(得分:0)

尝试此操作绝对可以帮助您:-

DatabaseReference mDatabaseReference = FirebaseDatabase.getInstance().getReference("your table name");
 mDatabaseReference.child("table child").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                int count = Integer.parseInt(snapshot.child("count").getValue().toString);
                //and update your value
                updateYourCount(count+1); //calling a method
            }

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

            }
        }); 

这是更新您在Firebase数据库中的计数的方法:-

public static void updateGroupName(int count) {
        DatabaseReference reference = FirebaseDatabase.getInstance().getReference("your table name").child(" table child name ");
        try {
            HashMap<String, Object> hashMap = new HashMap<>();
            hashMap.put("count", count);
            reference.updateChildren(hashMap);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }