我正在尝试更新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();
}
});
}
答案 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();
}
}