Настройка данных в Cloud Firestore с помощью Kotlin - PullRequest
0 голосов
/ 23 мая 2019

У меня есть два поля в моем документе пожарного депо: количество комментариев, которое является числом, и комментарии, которые являются массивом объектов.

Теперь я хочу добавить новый комментарий к массиву комментариев в существующем документе.Я знаю, что мне нужно создать временный список с существующими комментариями, затем добавить новый комментарий в конец этого списка и, наконец, поместить этот временный список в хранилище с помощью метода Set.Мой вопрос - как это сделать?Я попытался с кодом ниже, но это просто создает список объектов, но я хочу просто список объектов.

FirebaseFirestore.getInstance()
        .collection("name of my collection")
        .document("name of particular document")
        .get().addOnSuccessListener {

            docs: DocumentSnapshot ->

            //this creates list of list of objects
                val data = listOf(docs.data!!["comments"])

                val tempOutput = data.toMutableList()
                tempOutput.add(newCommentInfo)

               //This prints list of objects
                Log.i(TAG, "${docs.data!!["comments"]}")

               //This prints list of list of objects which I don't want
                Log.i(TAG, "$tempOutput")

                FirebaseFirestore.getInstance()
                    .collection("name of my collection")
                    .document("name of particular document")
                    .set(newCommentInfo, SetOptions.merge())

1 Ответ

0 голосов
/ 23 мая 2019

Если вы просто пытаетесь обновить одно поле типа списка в документе (это не совсем понятно из вашего вопроса), проще использовать метод update () и сообщить ему, какое поле вы 'повторная модификация:

FirebaseFirestore.getInstance()
    .collection("name of my collection")
    .document("name of particular document")
    .update("comments", newCommentInfo)
...