Как только вы получите полевые данные из облачного хранилища пожаров как HashMap
, сопоставьте все ключи и значения поочередно в Array
, как показано ниже.Все клавиши находятся в четных номерах , а все значения находятся в нечетных местах
0 1 2 3 . . . n-1 n <--- Index
| Key1 | Value1 | Key2 | Value2 | . . . | Keyn | Valuen | <--- Array
Это можно сделать с помощью HashMap.keySet()
, чтобы получитьвсе ключи как набор, а затем используйте HashMap.get(key)
, чтобы получить соответствующее значение.Вставьте его в массив, как показано на рисунке, и все готово.
Помните, Keyk
будет на Array[k-1]
, а Valuek
будет на Array[k]
.Например, Key7
будет в Array[6]
, а соответствующее ему значение Value7
будет в Array[7]
Если вам нужен определенный ключ, и вы не знаете его индекс, просто запустите Линейный поиск в массиве, чтобы найти ключ, а в следующем индексе - его соответствующее значение.
Чтобы сгенерировать HashMap
из Array
, отформатируйте массив, как показано выше, и используйтеHashMap.put(key, value)
Дело в том, что все HashMaps могут храниться в виде массива, но хранение массива в виде HashMap не имеет смысла все время
РЕДАКТИРОВАТЬ: Забыли ответитьдобавление в Firestore вещь
Поле tripList
, показанное на изображении, является массивом HashMaps. Просто создайте Array
с типом данных Object
и загрузите их с HashMap
с, как показано.
0 1 2 n
| HashMap0 | HashMap1 | HashMap2 | . . . | HashMapn |
Теперь загрузите этот массив в Cloud Firestore с помощью следующей команды
db.collection("TripsList").document(UID).update("tripList", HashMapArray);
Помните, что в Firestore должен быть массив с именем tripList
, чтобы избежать ошибок
Надеюсь, это поможет ..!