У меня есть коллекция Firestore, в которой с каждым документом связано изображение, которое хранится в хранилище Firebase. Ранее я сохранял ссылку на изображение и извлекал изображение через него, но, поскольку это занимало определенное время для каждого вызова, я пытался переключиться на сохранение загрузки, чтобы с помощью Picasso я мог ссылаться на него через загрузку без необходимости извлечения каждой загрузки. вещь. Однако, когда я пытаюсь записать документ внутри прослушивателя getdownloaduri при успешном выполнении, я получаю сообщение об ошибке, указывающее на цикл объекта.
Если я не включу обновление в базу данных, код сможет успешно получить загрузочный файл и передать его в просмотрщик и отобразить изображение, только при попытке загрузить его в базу данных я получу это ошибка. Я попытался обновить базу данных за пределами 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)
}
}
Ошибка, которая выводится во время выполнения:
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.canonica
и т.д.