子の値を子の「投稿」(ノード「postLikes」)に渡すときに問題が発生しました。ここに私のJSONの木があります: 子ノードのすべての値を合計し、その合計値を別の子ノードに渡します。
ここではイベントのようなボタンのための私のリスナーです:
mDatabaseRefLike.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
UserLike userLike = new UserLike();
if(mProcessLike){
if(dataSnapshot.child(mPostKey).hasChild(mUserId)){
mDatabaseRefLike.child(mPostKey).child(mUserId).removeValue();
mProcessLike = false;
}else {
mDatabaseRefLike.child(mPostKey).child(mUserId).setValue(1);
userLike.setUserLikes(1);
mProcessLike = false;
for (DataSnapshot snap: dataSnapshot.getChildren()) {
UserLike getLikes= snap.getValue(UserLike.class);
int gLikes = getLikes.getUserLikes();
gLikes += gLikes;
mDatabaseRefPost.child(mPostKey).child("postLikes").setValue(gLikes);
}
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
私はすでにこの問題を解決するために日々を過ごした、そして私が解決策を見つけることができなかったようです。
「mDatabaseRefLike」と「mDatabaseRefPost」が指し示したデータはどれですか? – koceeng
@koceeng 'mDatabaseRefLike'は子の「好き」を指していますが、「mDatabaseRefPost」は子の「投稿」です。 –