Этот вопрос появляется для всех поисков языка. Следовательно, для Котлина решение является чем-то вроде ниже:
val photoRef = FirebaseStorage.getInstance()
.reference.child("images/stars.jpg")
// Code ommited - Do some saving - putFile
photoRef.downloadUrl.addOnSuccessListener({ uri ->
product.imageUrl = uri.toString()
})
Однако это нехорошее решение. Вам лучше сохранить путь, а затем перестроить полный URL по требованию. Например:
photoRef.downloadUrl.addOnSuccessListener({ uri ->
val imagePath = uri.toString()
// Save to database
})
Теперь вы можете использовать его позже и только по запросу:
FirebaseStorage.getInstance().reference.child(product.imageUrl).downloadUrl
.addOnSuccessListener { uri ->
String imageUrl = uri.toString()
// Load in images
}
Вам нужно будет создать XmlAdapter
следующим образом:
public class LocalDateAdapter extends XmlAdapter<String, LocalDate> {
public LocalDate unmarshal(String v) throws Exception {
return LocalDate.parse(v);
}
public String marshal(LocalDate v) throws Exception {
return v.toString();
}
}
И аннотировать ваше поле, используя
@XmlJavaTypeAdapter(value = LocalDateAdapter.class)
См. также javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters
, если вы хотите определить ваши адаптеры на уровне пакета.
http://blog.bdoughan.com/2011/05/jaxb-and-joda-time-dates-and-times.html описывает установку отверстия.
Joda-Time предоставляет альтернативу классам даты и календаря, которые в настоящее время предоставляются в Java SE. Поскольку они предоставляются в отдельной библиотеке, JAXB не предоставляет сопоставление по умолчанию для этих классов.
blockquote>Зарегистрировать адаптер для всех файлов в пакете. вы можете добавить package-info.java в пакет, который вы хотите зарегистрировать.
@XmlJavaTypeAdapters({ @XmlJavaTypeAdapter(type=LocalDate.class, value=LocalDateAdapter.class), }) package PACKAGE_NAME; import java.time.LocalDate; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters;
Адаптер выглядит так:
import javax.xml.bind.annotation.adapters.XmlAdapter; import java.time.LocalDate; public class LocalDateAdapter extends XmlAdapter<String, LocalDate>{ public LocalDate unmarshal(String v) throws Exception { return LocalDate.parse(v); } public String marshal(LocalDate v) throws Exception { return v.toString(); } }