Как я могу создать и обновить массив чисел в firestore?

#android #firebase #google-cloud-firestore

#Android #firebase #google-облако-firestore

Вопрос:

Я хочу создать массив программно в 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 по добавлению элементов в массив.