如何使用数据模型从firebase实时数据库检索数据?
这本书有多个数据 第章有多个数据 Verse有多个数据 我的模型和firebase数据库如下所示,我如何在模型中按章节检索所有数据如何使用数据模型从firebase实时数据库检索数据?,firebase,kotlin,firebase-realtime-database,Firebase,Kotlin,Firebase Realtime Database,这本书有多个数据 第章有多个数据 Verse有多个数据 我的模型和firebase数据库如下所示,我如何在模型中按章节检索所有数据 Class Model_bible( val book_array:List<Model_bible_bible_array>?=null ){} Class Model_bible_bible_array( val book_array:HasMap<String,Model_bible_chapter>?=null ){} Cla
Class Model_bible(
val book_array:List<Model_bible_bible_array>?=null
){}
Class Model_bible_bible_array(
val book_array:HasMap<String,Model_bible_chapter>?=null
){}
Class Model_bible_chapter(
val book_array:List<Model_bible_chapter_hasmap>?=null
){}
Class Model_bible_chapter_hasmap(
val book_array:HasMap<String,Model_bible_Verse_array>?=null
){}
Class Model_Model_bible_Verse_array(
val book_array:List<Verse_data>?=null
){}
Class Verse_data(
val Verse:String = "",
Val Verse_id:String = ""
){}
如果我没弄错的话,从Firebase右上角的实时数据库下载JSON。将JSON内容粘贴到这里,它将生成适当的模型结构 以下是Kotlin数据类模型:
import kotlinx.serialization.Serializable
@Serializable
data class SomeTestModelClass(
val img: List<Img?>? = null
) {
@Serializable
data class Img(
val imagedata: List<Imagedata?>? = null,
val imgdata: List<Imgdata?>? = null
) {
@Serializable
data class Imagedata(
val `data`: List<Data?>? = null
) {
@Serializable
data class Data(
val img: String? = null
)
}
@Serializable
data class Imgdata(
val `data`: List<Data?>? = null
) {
@Serializable
data class Data(
val img: String? = null
)
}
}
}
它正在使用库。使用下面的模型获取我的所有数据 Java POJO类和Kotlin
@Serializable()
public class Example {
@SerializedName("Book")
@Expose
private List<Book> book = null;
public List<Book> getBook() {
return book;
}
public void setBook(List<Book> book) {
this.book = book;
}
@Serializable
public class Book {
@SerializedName("Chapter")
@Expose
private List<Chapter> chapter = null;
public List<Chapter> getChapter() {
return chapter;
}
public void setChapter(List<Chapter> chapter) {
this.chapter = chapter;
}
@Serializable
public class Chapter {
@SerializedName("Verse")
@Expose
private List<Verse> verse = null;
public List<Verse> getVerse() {
return verse;
}
public void setVerse(List<Verse> verse) {
this.verse = verse;
}
@Serializable
public class Verse {
@SerializedName("Verseid")
@Expose
private String verseid;
@SerializedName("Verse")
@Expose
private String verse;
public String getVerseid() {
return verseid;
}
public void setVerseid(String verseid) {
this.verseid = verseid;
}
public String getVerse() {
return verse;
}
public void setVerse(String verse) {
this.verse = verse;
}
}
}
}
}
数据类和kotlin代码
@Serializable
data class SomeTestModelClass(
@SerializedName("Book")
val Book: List<Img?>? = null
) {
@Serializable
data class Img(
@SerializedName("Chapter")
val Chapter: List<Imagedata?>? = null
) {
@Serializable
data class Imagedata(
@SerializedName("Verse")
val Verse: List<Data?>? = null
) {
@Serializable
data class Data(
@SerializedName("Verseid")
val Verseid: String? = null,
@SerializedName("Verse")
val Verse: String? = null
)
}
}
}
请不要显示代码的图片。最好是将代码复制到问题中并格式化,以便更容易阅读和搜索。这就等于给空值。pojo类未生成您是否可以通过Firebase下载的JSON文件的内容?{img:[{imgdata:[{data:[{img:wallpaper image.jpg},{img:wallpaper image.jpg},{img:wallpaper image.jpg},{data:[{img:wallpaper image.jpg},}https://ansunibaate.com/wp-content/uploads/2019/04/lion-wallpaper-image.jpg},{img:https://ansunibaate.com/wp-content/uploads/2019/04/lion-wallpaper-image.jpg}]}]},{imagedata:[{data:[{img:https://ansunibaate.com/wp-content/uploads/2019/04/lion-wallpaper-image.jpg},{img:https://ansunibaate.com/wp-content/uploads/2019/04/lion-wallpaper-image.jpg}]}]}]}嘿,谢谢你的建议,我会修改你的代码,我会得到我们@Webfreak的所有数据
@Serializable
data class SomeTestModelClass(
@SerializedName("Book")
val Book: List<Img?>? = null
) {
@Serializable
data class Img(
@SerializedName("Chapter")
val Chapter: List<Imagedata?>? = null
) {
@Serializable
data class Imagedata(
@SerializedName("Verse")
val Verse: List<Data?>? = null
) {
@Serializable
data class Data(
@SerializedName("Verseid")
val Verseid: String? = null,
@SerializedName("Verse")
val Verse: String? = null
)
}
}
}
query.addListenerForSingleValueEvent(object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
val jsonString = gson?.toJson(dataSnapshot.value)
val staff: SomeTestModelClass = gson!!.fromJson(jsonString, SomeTestModelClass::class.java)
Log.d("data",staff.toString())
}
override fun onCancelled(error: DatabaseError) {
// Failed to read value
}
})