#android #firebase #google-cloud-firestore
#Android #firebase #google-облако-firestore
Вопрос:
Я хочу создать массив программно в firestore. Кроме того, я хочу обновить массив, как показано на прилагаемом изображении.
Я хочу сохранить все ссылочные номера в этом массиве. И всякий раз, когда появляется новый ссылочный номер, я хочу обновить массив. Пожалуйста, помогите.
Это то, что я пробовал. Я знаю, что это неправильно. Это не обновление массива, а его замена.
Map<String, Object> mapone= new HashMap<>();
Map<String, Object> maptwo = new HashMap<>();
mapone.put("Refnum", f_refrenceNum);
maptwo.put("RefNumber", mapone);
upiRefnum.set(maptwo,SetOptions.merge());
Комментарии:
1. Что вы пробовали до сих пор?
2. @AlexMamo я обновил свой вопрос о том, что я пробовал. В моем методе он не обновляется, а заменяет предыдущее значение
Ответ №1:
Ваш код сообщает Firestore RefNumber.Refnum
полям со значениями, которые вы указываете для is.
Если вы хотите добавить f_refrenceNum
в массив, вы можете использовать array-union
операцию:
mapone.put("Refnum", FieldValue.arrayUnion(f_refrenceNum));
Это добавит f_refrenceNum
, если его еще нет в массиве. Если он уже есть в массиве, и вы хотите добавить дубликат, вам нужно будет прочитать документ в коде вашего приложения, добавить номер в коде вашего приложения, а затем записать весь массив обратно в базу данных.
Смотрите Документацию Firestore по добавлению элементов в массив.