Как прочитать данные массива из хранилища с помощью kotlin? - PullRequest
0 голосов
/ 05 августа 2020

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

val variable = arrayOf(document.get("restaurant"))

, а затем l oop над переменной, используя код

varibale.forEach {
    Log.d("someTag", ${it.toString()} + " is your data")
}

Я получаю результат с квадратными скобками в журнале следующим образом:
[somedata, somedata2] - это ваши данные

моя проблема в том, что forEach l oop выполняется только один раз, и я не могу получить результат (без квадратных скобок) следующим образом:

somedata - ваши данные
somedata2 - ваши данные

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

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

arrayOf не анализирует массив. Он создает новый массив, используя переданные ему элементы. Это не то, что вам нужно. Вместо этого вы должны преобразовать document.get("restaurant") к типу, который вы ожидаете получить от Firestore.

Если поле представляет собой массив строк, тогда SDK выдаст вам List<*>, и вам нужно будет сделать убедитесь, что каждый элемент в списке является строкой, если это то, что вы сохранили в массиве.

val variable = document.get("restaurant") as List<*>
// Iterate variable here, make sure to check or convert items to strings
0 голосов
/ 05 августа 2020

Вы фактически переносите массив / список в другой массив при использовании arrayOf, поэтому вы видите эти скобки. Вместо этого попробуйте преобразовать ваш document.get("restaurant"), а затем выполнить цикл прямо через него.

...