小编Chr*_*anK的帖子

尝试将 downloadUri 添加到 firestore 文档时出错。“无法序列化对象。超过最大深度 500”

我有一个 Firestore 集合,其中每个文档都有一个与之关联的图像,该图像存储在 Firebase 存储中。以前我存储了图像引用并通过它检索了图像,但是由于每次调用都需要一些时间,我尝试切换到存储 downloaduri,以便使用毕加索我可以通过 downloaduri 引用它,而不必每次都检索 downloaduri物品。但是,当我尝试写入 getdownloaduri 的 on success 侦听器内的文档时,我收到一个错误,指示对象循环。

如果我不包含对数据库的更新,则代码能够成功检索 downloaduri 并将其传递给 recyclerview 并显示图像,只有在尝试将其上传到数据库时才会出现此错误。我已经尝试在 dowonloadUri.addonsuccesslistenr 之外更新数据库,但是我在侦听器中设置的值永远不会在侦听器之外更新。

 if(menucarditem.dluri == null)
                        {
                            val storageRef = storage.reference
                            val pathReference = storageRef.child(menucarditem.img)
                            pathReference.downloadUrl.addOnSuccessListener {
                                menucarditem.dluri = it
                                dbMealItem.dluri = it
                                db.collection("menuitems").document(dbMealItem.CatererId + dbMealItem.name).set(dbMealItem).addOnSuccessListener {  }
                                    .addOnFailureListener { }

                           viewAdapter.notifyDataSetChanged()

                            }
       .addOnFailureListener{
                                    Toast.makeText(this, "Image from database not found", Toast.LENGTH_LONG).show()
                                    Log.w(TAG, "Error getting documents: ", it)
                                }
}

Run Code Online (Sandbox Code Playgroud)

运行时输出的错误是:

E/AndroidRuntime:java.lang.IllegalArgumentException:无法序列化对象。超过 500 的最大深度,这可能表明存在对象循环(在字段 'dluri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri. canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri。 canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonicalUri.canonica

等等。

android kotlin firebase google-cloud-firestore

5
推荐指数
2
解决办法
1794
查看次数