使用 arrayUnion 将对象添加到 firestore 中的数组



在我的安卓应用程序中,我构建了一个名为"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 提交功能请求。

最新更新