Я запутался в использовании новой функции firestore
https://firebase.google.com/docs/firestore/manage-data/add-data#update_elements_in_an_array
В документе firestore у меня есть массив "List" с пользовательскими объектами "MyObect"
...update("TestArray", FieldValue.arrayUnion("Test"));
работает нормально и, как и ожидалось.
Но когда я пытаюсь это сделать:
MyObject object = new MyObject(Value1, Value2);
...update("List", FieldValue.arrayUnion(object));
Я заканчиваю с ошибкой
java.lang.IllegalArgumentException: Invalid data. Unsupported type: com.my.app.MyObject
at com.google.firebase.firestore.core.UserData$ParseContext.createError(com.google.firebase:firebase-firestore@@17.1.3:293)
at com.google.firebase.firestore.UserDataConverter.parseScalarValue(com.google.firebase:firebase-firestore@@17.1.3:405)
at com.google.firebase.firestore.UserDataConverter.parseData(com.google.firebase:firebase-firestore@@17.1.3:254)
at com.google.firebase.firestore.UserDataConverter.parseArrayTransformElements(com.google.firebase:firebase-firestore@@17.1.3:419)
at com.google.firebase.firestore.UserDataConverter.parseSentinelFieldValue(com.google.firebase:firebase-firestore@@17.1.3:335)
at com.google.firebase.firestore.UserDataConverter.parseData(com.google.firebase:firebase-firestore@@17.1.3:237)
at com.google.firebase.firestore.UserDataConverter.parseUpdateData(com.google.firebase:firebase-firestore@@17.1.3:171)
at com.google.firebase.firestore.DocumentReference.update(com.google.firebase:firebase-firestore@@17.1.3:239)
РЕДАКТИРОВАТЬ Вот моя структура базы данных:
/ UserData / UserID / Data / DataSet01 /
По этому пути у меня есть несколько значений, таких как:
- name
- рождение
- пол
- список (массив)
рождение пол список (массив)
DocumentReference document= FirebaseFirestore.getInstance().document("UserData").collection("UserID").document("DataSet01");
document.update("TestArray", FieldValue.arrayUnion("test"));
Добавляет поле "TestArray"и любой данной строки, в приведенном выше случае" test ".
Но следующий код не работает:
DocumentReference document= FirebaseFirestore.getInstance().document("UserData").collection("UserID").document("DataSet01");
document.update("List", FieldValue.arrayUnion(myObject));