コメントを保存するオブジェクトの配列があります。私は正しいpostid
を見つけて、ユーザーがコメントを残すたびにその配列に新しいオブジェクトを挿入したいと思います。Firebaseでオブジェクトの配列を更新するには?
スキーマ
"comments" : {
"-KfXyMUIqsiPGElax098" : {
"comments" : [ {
"author" : "s123456",
"comment" : "This is the first comment."
} ],
"postid" : "-KfSToVpsWUecTL_tmlh"
}
}
モデル
public class CommentNew {
String author;
String comment;
public CommentNew() {}
public CommentNew(String author, String comment) {
this.author = author;
this.comment = comment;}
public String getAuthor() {
return author;}
public void setAuthor(String author) {
this.author = author;}
public String getComment() {
return comment;}
public void setComment(String comment) {
this.comment = comment;}
}
コード
私は正しいpostid
を見つけるが、どのように私は、配列に新しいオブジェクトを追加することができますか?
public void saveComment(String postIdKey, final CommentNew commentNew) {
Query queryRef = mFirebase.child("comments").orderByChild("postid").equalTo(postIdKey);
queryRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot: dataSnapshot.getChildren()) {
String key = snapshot.getKey();
String path = "comments/" + key + "/comments";
List comment = new ArrayList<CommentNew>(Arrays.asList(commentNew));
Map<String, Object> result = new HashMap<String, Object>();
result.put("comments", commentNew);
mFirebase.child(path).updateChildren(result);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
}
あなたの 'CommentNew'クラスを投稿してください。 – RamithDR
@RamithDR 'CommentNew'クラスを投稿します。 – David
クラスを投稿してくれてありがとう。下の私の答えに含まれているソリューションをお試しください。 – RamithDR