我试图从Firebase Firestore中检索一个字段,并将其放入一个自定义对象中。我成功地从代码上传了自定义对象,没有任何问题,但是当我试图从Firestore读取和访问对象列表时,我一直得到以下错误:
java.lang.ClassCastException:java.util.HashMap不能强制转换为SelfMade问题
SelfMadeQuestion类如下所示:
class SelfMadeQuestion(
var openQuestion: Boolean = false,
var questionText: String = "",
var answers: List<String>? = mutableListOf(),
var rightAnswer: String? = ""
) {}
这就是我试图做的,以便从Firebase中读取自拍问题列表:
fStore.collection("users").get().addOnSuccessListener { documents ->
/**
* start loading data
* */
for (it in documents) {
val questions = it.get("selfMadeQuestions") as
MutableList<SelfMadeQuestion>?
}
由于可以将自定义对象上载到firebase并且工作正常,我想知道是否有任何方法可以将字段作为对象读取?
请注意,文档快照#get(字符串字段)方法返回一个对象类型为 Object。由于自订问题
字段由成对的键和值组成,因此返回的对象类型是哈希映射
。
因此,您会收到以下错误:
java.lang.ClassCastException:java.util.HashMap无法强制转换为SelfMade问题
因为您正在尝试将HashMap转换为SelfMadeRequest
类型的对象,这在静态编程语言中实际上是不可能的。
我能想到的最简单的解决方案是创建另一个包含 List 的类。
class SelfMadeQuestions(
var selfMadeQuestions: List<SelfMadeQuestion> = mutableListOf()
)
然后您可以简单地将该数组映射到
列表中
fStore.collection("users").get().addOnSuccessListener { documents ->
for (doc in documents) {
if (doc.get("selfMadeQuestions") != null) {
val questions = doc.toObject(SelfMadeQuestions::class.java).questions
Log.d(TAG, questions.size.toString())
}
}
}
logcat中的结果将是每个列表的大小。为了更好地理解它,我还建议您阅读以下文章:
如何将云火库中的对象数组映射到对象列表?
在WooCommerce结账页面上,我添加了一个客户必须输入才能结账的额外字段。 我想在woocommerce\u cart\u calculate\u fees操作挂钩中访问此字段的值。 通过使用woocommerce,我尝试了几种方法-
我在修改我安装的WordPress流行帖子插件时遇到了一些问题。 它可以选择从自定义字段获取缩略图,我已将其输入为“image_facebook”。但是缩略图没有显示。 在检查代码时,我发现imgsrc有post id而不是返回图像URL。 我已经把问题缩小到我安装的另一个插件http://wordpress.org/plugins/advanced-custom-fields/ 当它处于活动状态
我是新来的,我用控制面板创建了一个页面自定义字段 然而,这个api给我带来了一个错误:java。lang.NullPointerException。我认为这个错误是由于对自定义字段的许可而发生的。所以,我勾选了查看和更新来宾权限。但问题依然存在。 我的问题是什么触发了这个错误,如何修复它,还有其他解决方案可以用来从页面自定义字段中检索值吗? 提前谢谢。 编辑 我在为api分配属性时存在误解,下面是
问题内容: 我在Playground中使用Swift 3,Xcode 8.0拥有此功能: 创建人员数组 编码数组 保存到用户默认值 检查 从userDefaults返回 只需检查存档的数据 我无法正确将数据对象保存到userDefaults,此外,底部的检查还会产生错误“严重错误:在展开可选值时意外发现nil”。“检查”行还显示已保存的对象为nil。这是我对象的NSCoder中的错误吗? 问题答案
我有一个前端ACF表单-ACF_表单()。使用post对象字段。我想通过自定义字段限制查询结果。下面的代码可以正常工作,除了当我尝试在搜索栏中键入时,会出现以下错误:我得到的错误是ajax响应中的PHP错误; 0:“PhpConsole\Handler”- 1:"strpos()" 2:"acf_order_by_search()" 3:“acf_field_post_object- 4:“acf
WooCommerce后台的产品检索与前台搜索略有不同。前台是在WordPress默认搜索的基础上修改,后台直接用了一套自己的逻辑,从wc_product_meta_lookup这个表里检索产品,调用函数WC_Product_Data_Store_CPT->search_products(),这个函数只有一个filter——woocommerce_product_pre_search_produc