首页 > 解决方案 > Google FireStore 支持的自定义对象的限制?

问题描述

我正在使用 Google FireStore 作为我的 android 应用程序的后端。该应用程序有一个自定义User类。正如文档所指定的,这个自定义类有一个不带参数的公共构造函数(和一个带参数的构造函数)以及每个变量的 getter。

其中一个变量是 a LinkedList<String>。我能够User毫无问题地将对象上传到 FireStore,但通过

User u = document.toObject(User.class);

导致以下错误,在 logcat 中检测到:

java.lang.IllegalArgumentException: field ase.liongps.utils.User.searches has type java.util.LinkedList, got java.util.ArrayList

我想知道 Google FireStore 是否会在将对象存储在云中时对其进行变异,或者我尝试创建本地User对象的方式是否导致了此问题。这个错误目前正在使我的应用程序崩溃,因此非常欢迎任何建议或输入!

标签: javaandroidfirebasegoogle-cloud-firestore

解决方案


您收到以下错误:

java.lang.IllegalArgumentException:字段 ase.liongps.utils.User.searches 的类型为 java.util.LinkedList,得到 java.util.ArrayList

由于对象类型不兼容,LinkedList并且ArrayList. 要解决此问题,请将对象的数据类型从LinkedListto更改为ArrayList并在客户端订购项目。


推荐阅读