2017-07-16 4 views
0

Android用Firebaseを使用して何らかのコメントを作成しようとしています。 質問が1つあります。配列に新しい項目を追加する方法はありますか?私は、オブジェクトのような種類を持っている場合、私はプッシュしようとしている場合はFirebaseは動的に項目を追加します

例えば、 enter image description here

、それは enter image description here

をマッピングするために、それを変換しますそして私は、このオブジェクトごとに上書きしたくありませんなぜなら、私はマルチユーザサポートを持っており、ある時点で失敗するからです。

私はモデルとしてDataTransferObjectsを作成せず、firebaseを使用して自動解析をサポートするためにListとして実行しようとしています。

ありがとうございます!実際には、マップを作成するとアイデアはなくなります。

マイObjectModel:

public class Company implements Parcelable { 
    private String id; 
    private String name; 
    private String description; 
    private List<Comment> comments; 
} 

コード項目を押すため:

final DatabaseReference ref = companiesRef.child(companyId).child(NODE_COMMENTS).push(); 
     return Single.create(e -> ref.setValue(comment) 
       .addOnCompleteListener(task -> { 
        e.onSuccess(task.isSuccessful()); 
       })); 
+0

あなたのコードのいくつかの行を追加します –

+0

は、このQのコメントを参照してください:https://stackoverflow.com/questions/42872303/firebase-saves-data-as-list-and-sometimes-as-map-オブジェクト – Thomas

+0

私はトーマスが特にこのコメントを参照していると思う:https://stackoverflow.com/questions/42872303/firebase-saves-data-as-list-and-sometimes-as-map-object#comment72855846_42872303 –

答えて

0

これは、それがどのように動作するかですが、私は私の最初のcommentIDと「1として "0" が格納されている下の例を見て"私の2番目のコメントIDとして。ご覧のとおり、lastCommentIDをリストの最後のコメントのcommentIDとして保存しました。

{ 
    "comments": { 
    "0": { 
     "text": "mycomment", 
     "time": "142351516" 
    }, 
    "1": { 
     "text": "secondcomment", 
     "time": "153426564" 
    } 
    } 

"lastCommentId": "1" 
} 

あなたはfirebaseに新しいコメントを追加したい時はいつでもあなたが最初の文字列としてlastCommentIDを取得し(例:1)を整数に変換する必要があり、その後の値(例えば2)に1を追加したときになるように次のコメントを保存すると、前のバージョンを上書きしません。

データベースにコメントを追加するたびにlastCommentIDを置き換えることに注意してください。

{ 
    "comments": { 
    "0": { 
     "text": "mycomment", 
     "time": "142351516" 
    }, 
    "1": { 
     "text": "secondcomment", 
     "time": "153426564" 
    }, 
    "2": { 
     "text": "thirdcomment", 
     "time": "153426564" 
    } 
    } 

"lastCommentId": "2" 
} 
+0

ありがとう、事はFirebaseの既存のリストに新しいオブジェクト(コメント)を追加したい。 –

+0

申し訳ありませんが、私の悪い、状況を誤解。あなたはすでにあなたの答えを見つけたことがわかります。なぜあなたはすでに答えを知っているという質問をしますか? – UmarZaii

+0

Umar、申し訳ありませんが、このコードはオブジェクトをプッシュするためのものですが、2番目のスクリーンショットではリストをマップに変換してリストに新しいアイテムを挿入しようとしていますので、それは私が探しているものではありません。ちょうど私がすでに試したことを示すために追加されました。だから私はまだ答えを探しています –

関連する問題