在我的安卓应用程序中,我构建了一个名为"Lesson"的对象(它只有 2 个字符串字段(。
我在Firestore上有一个集合,它的一个字段是"课程"数组(称为"我的课程"(。
我想在数组中添加另一个教训。 我尝试使用:
DocumentReference.update("myLessons", FieldValue.arrayUnion(A_LESSON));
但我总是得到一个例外:
java.lang.IllegalArgumentException: Invalid data. Unsupported type: com.example.classmate.Models.Lesson
但是当我尝试使用整数和字符串执行此操作时,它起作用了(尽管我将数组声明为"Lesson"数组(。
是否可以将非抢占式对象上传到数组? 如何将对象上传到数组?
谢谢!
这似乎是Firestore SDK的限制。 引发的异常来自此处。 该方法正在确定它是否可以处理传递给FieldValue.arrayUnion()
的参数。 您正在传递一个自定义类型com.example.classmate.Models.Lesson
但由于它不是接受的类型之一,因此它会引发 IllegalArgumentException。
相反,您应该传递在该方法 parseScalarValue 中看到的可接受的类型之一(例如,null、Integer、Double、String 等(。
如果您希望能够传递自定义类类型,我建议您在 GitHub 上为 Firebase SDK 提交功能请求。