Как я могу получить данные из базы данных Firebase в реальном времени, используя модель данных? - PullRequest
0 голосов
/ 30 сентября 2019

enter image description here В книге несколько данных В главе есть несколько данных В стихе есть несколько данных

моя модель и база данных пожарной базы приведены ниже, как я могу получить все мои данные с помощью главы и стихамудрый в модели

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 = ""
){}

Ответы [ 2 ]

1 голос
/ 30 сентября 2019

Загрузите JSON из базы данных реального времени в Firebase (в правом верхнем углу, если я не ошибаюсь). Вставьте сюда содержимое JSON http://www.jsonschema2pojo.org/, и оно сгенерирует соответствующую структуру модели.

Вот модель класса данных 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
            )
        }
    }
}

Используется https://github.com/Kotlin/kotlinx.serialization библиотека.

0 голосов
/ 30 сентября 2019

получить все мои данные, используя модель ниже

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;
                }

            }
        }
    }
}

ниже будет использоваться для получения данных с моделью


        query.addListenerForSingleValueEvent(object : ValueEventListener {

            override fun onDataChange(dataSnapshot: DataSnapshot) {
                val jsonString = gson?.toJson(dataSnapshot.value)
                val staff: Example = gson!!.fromJson(jsonString, Example::class.java)
            }

            override fun onCancelled(error: DatabaseError) {
                // Failed to read value
            }
        })

Данныекод класса и котлина

@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
            )
        }

    }
}

файл main.kt

 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
            }
        })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...