我試圖使用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));
在加推()在這裏。這是有效的,但不是隻增加我的列表,而是在列表中添加另一個圖層,以便實際獲得一個數組數組而不是更長的列表。
在這裏看到的結果:
請提供您的數據庫結構的示例。根據我看到的代碼,每個用戶都有一個名爲「answers_questions」的子位置。您是否只是試圖向該用戶回答問題列表添加一個新答案的問題? –
這確實正是我想要做的:每個用戶都有一個answers_question列表,我想添加一個List(Java對象)到這個列表 –
Jasper
好的...我應該可以幫助那個 –