【发布时间】:2019-04-23 08:49:30
【问题描述】:
我对使用新的 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/
在这条路径下,我有一些值,例如:
- 姓名
- 出生
- 性别
- 列表(数组)
出生性别列表(数组)
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));
【问题讨论】:
-
请添加您的数据库结构以查看您的
TestArray以及您的List数组。
标签: android arrays google-cloud-firestore