Как вставить массив объектов в Firestore?#AskFirebase - PullRequest
0 голосов
/ 15 октября 2018

enter image description here Я хочу вставить массив объектов в Firestore?Я могу добавить из консоли Firestore, но делать это из Java это не работает?Здесь я прилагаю свой снимок консоли и код:

val map = HashMap<String, Any>()
    map["one"] = request.records
    dayFormDoc.set(map)

Здесь request.records - это массив.# AskFirebase

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

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

Причина: java.lang.IllegalArgumentException: Неверные данные.Массивы не поддерживаются;Вместо этого используйте список (находится в массиве полей)

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

Для Android:

Map<String, Object> map = new HashMap<>();
String[] array = {"One", "Two", "Three"};
map.put("array", Arrays.asList(array));
dayFormDoc.update(map);

Для Kotlin:

val map = HashMap<String, Any>()
val array = arrayOf("One", "Two", "Three")
map["array"] = Arrays.asList(*array)
dayFormDoc.update(map)
0 голосов
/ 15 октября 2018

попробуйте,

Android

Map<String, Object> docData = new HashMap<>();

docData.put("listExample", Arrays.asList(1, 2, 3));

java

ArrayList<Object> arrayExample = new ArrayList<>();
Collections.addAll(arrayExample, 5L, true, "hello");
docData.put("arrayExample", arrayExample);

больше информации https://firebase.google.com/docs/firestore/manage-data/add-data

Надеюсь, это поможет полностью.

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