Как получить список объектов внутри коллекции из облачного пожарного магазина в Android? - PullRequest
1 голос
/ 19 марта 2020

Вот данные

Как я могу получить "listTask"

Я пытался зарегистрировать "document.data [" listTask "]" с код ниже:

db.collection("project").get()
        .addOnSuccessListener { result ->
            Log.d(TAG, "onRefresh: loadProject")
            for (document in result){
                if (document.data["owner_id"]== id){
                    counter++
                    Log.d(TAG, "inside response: ${document.data["listTask"]}")
                }
            }

        }

и это результат журнала

D/YourProjectFragment: inside response: [{id=29356, title=Database, status=false}, {id=28581, title=UI UX, status=false}, {id=66044, title=Architecture Design, status=false}, {id=77830, title=Functional Test, status=false}]

Я не знаю шаблон ответа, я пытался с JSONArray, но это не так JSONArray.

так как получить список объектов внутри коллекции в Cloud Firestore?

Ответы [ 2 ]

2 голосов
/ 19 марта 2020

Я пробовал с jsonArray, но это не jsonArray

Это, очевидно, не JSONArray, это свойство объекта типа. Кроме того, JSONArray не является поддерживаемым типом данных .

Так как получить список объектов внутри коллекции в Cloud Firestore?

К сожалению, вы не можете отобразить ваше свойство listTask непосредственно в список пользовательских объектов. Вы должны написать код для этого. Свойство listTask на самом деле представляет собой список объектов HashMap, поскольку ваш ответ указывает на:

response: [{id=29356, title=Database, status=false}, {id=28581, title=UI UX, status=false}, {id=66044, title=Architecture Design, status=false}, {id=77830, title=Functional Test, status=false}]

Видите, оно начинается с [ и заканчивается ], это делает его массивом и каждым и каждый объект внутри этого массива является HashMap. Поэтому вам нужно перебрать этот список объектов HashMap и создать свой собственный список "Task" объектов.

Если вы хотите, вы можете связаться с командой Firebase и сделать запрос на это.

1 голос
/ 19 марта 2020

Я решил эту проблему, я просто привел ее к своему объекту ArrayList, у меня есть объект «Задача», поэтому я и произвел приведение

document.data["listTask"] as? ArrayList<Task>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...