firebase push()関数を使用しようとしています。既存のリストにデータを追加する必要があります。 setValue()関数は、既存のデータを上書きします。firebaseへのデータのプッシュリストが機能しない
これは私が行うために使用するものである:
DatabaseReference childref = mDatabase.child("users").child(uih.getUserData().getUsername()).child("answered_questions");
childref.setValue(getAnsweredQuestions(questionViewList));
これは働いていたが、私は使用するたびに、この関数は、データが上書きされており、これは私が欲しいものではありません。私は、firebaseの文書で説明されているようにプッシュ機能を使ってみました:https://firebase.google.com/docs/database/android/save-data
私はそれを正しくやっているのか分かりませんが、うまくいきません。
DatabaseReference childref = mDatabase.child("users").child(uih.getUserData().getUsername()).child("answered_questions");
String key = childref.push().getKey();
Map<String, Object> childUpdates = new HashMap<>();
childUpdates.put(key, questionViewList);
mDatabase.updateChildren(childUpdates);
私が得る例外は次のとおりです:
com.google.firebase.database.DatabaseException: Failed to parse node with class class scrambled.nl.generationr.QuestionView
とのsetValueをしながら、私はこのエラーを受け取っていないので、これは、奇妙である私がプッシュ()関数を実装しようとしたとき、これはあります方法。誰が私が間違っていることを説明し、どのようにfirebaseにリストをプッシュする必要がありますか?
編集:
私は何ができるかは、次のとおりです。
DatabaseReference childref = mDatabase.child("users").child(uih.getUserData().getUsername()).child("answered_questions");
childref.push().setValue(getAnsweredQuestions(questionViewList));
では、ここでプッシュ()を追加。これは機能しますが、私のリストを増やす代わりにリストに別のレイヤーを追加するので、実際には長いリストの代わりに配列の配列が得られます。
結果はこちらをご覧ください:
データベース構造のサンプルを提供してください。私はそれが各ユーザーのように見えるコードに基づいて、 "respond_questions"と呼ばれる子の場所があります。そのユーザーに質問に回答した新しい質問を追加しようとしていますか? –
それは確か私がやろうとしていることです:各ユーザーはanswed_questionのリストを持っていて、リスト(Javaオブジェクト)をこのリストに追加したいです –
Jasper
ok ...私はそれを手助けすることができます –