java - 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
对象的方式是否导致了此问题。这个错误目前正在使我的应用程序崩溃,因此非常欢迎任何建议或输入!
解决方案
您收到以下错误:
java.lang.IllegalArgumentException:字段 ase.liongps.utils.User.searches 的类型为 java.util.LinkedList,得到 java.util.ArrayList
由于对象类型不兼容,LinkedList
并且ArrayList
. 要解决此问题,请将对象的数据类型从LinkedList
to更改为ArrayList
并在客户端订购项目。
推荐阅读
- php - 如何在 WooCommerce 我的帐户菜单中将链接项目添加到另一个页面
- reactjs - 省略类型的部分以将该类型分成两部分
- azure-active-directory - 以访客身份登录外部租户 (B2B) 时的图形 API 访问
- php - 在 PHP 中登录后继续 SESSION
- python - 踢所有命令
- java - 火花函数 rangeBetween 直到满足条件
- python - 如何使用 PIL 加载大于 MAX_IMAGE_PIXELS 的图像?
- azure - 将文件从 Azurewebapp wwwroot 复制到 azure blob
- android - 模拟android设备的所有http请求
- sql - Asp.net 插入语句中的多个替换字符?