当我单击“赞”按钮时,所有孩子的“喜欢”值都会增加,但我希望特定孩子的价值增加
@Override
public void onItemClick(final int clickItemIndex) {
databaseReference.child("Stories").orderByChild("show").equalTo("1").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
String like = dataSnapshot1.child("like").getValue(String.class);
int ll = Integer.parseInt(like);
int l2 = ll + 1;
String like2 = String.valueOf(l2);
databaseReference.child("Stories").child(dataSnapshot1.getKey()).child("like").setValue(like2);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError){
}
});
}
我从this链接中获得了参考,请帮助我
答案 0 :(得分:0)
在商品上单击以获取完整的商店对象。 然后,
模型类或数据类结构。
Story->date
->like
->show
->story
->userName
->storyId
FireBase数据库结构:
stories->
->storyId->
Story->date
->like
->show
->story
->userName
->storyId
现在只需使用对象ID进行查询。并添加1。
@Override public void onItemClick(final int clickItemIndex){
databaseReference.child("Stories").orderByChild("show").equalTo("1").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
String like = dataSnapshot1.child("like").getValue(String.class);
int ll = Integer.parseInt(like);
int l2 = ll + 1;
String like2 = String.valueOf(l2);
databaseReference.child("Stories").child(story.getStoryId()).child("like").setValue(like2);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError){
}
});
}
答案 1 :(得分:0)
尝试一下
@Override
public void onItemClick(final int clickItemIndex) {
databaseReference.child("Stories").orderByChild("show").equalTo("1").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
String like = dataSnapshot1.child("like").getValue(String.class);
int ll = Integer.parseInt(like);
int l2 = ll + 1;
String like2 = String.valueOf(l2);
Map userInfo = new HashMap();
userInfo.put("like", like2);
databaseReference.child("Stories").child(dataSnapshot1.getKey()).updateChildren(userInfo);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError){
}
});
}
希望它能帮助您全部。