у меня есть массив, в который я хочу добавить некоторые данные. если документ не существует, он должен создать новый, но это не работает. Работает только с уже созданными документами. Вот мой код:
let washingtonRef = db.collection("ShoppingLists").document(valueset["listId"]!)
uploadData["productId"] = productID
uploadData["sellerId"] = sellerId
washingtonRef.setData([
"products": FieldValue.arrayUnion([uploadData])
])





Вы забыли флаг merge в setData:
washingtonRef.setData([
"products": FieldValue.arrayUnion([uploadData])
], merge: true)
Если вы используете метод setData для сохранения документа, существующие документы будут перезаписаны! Если вы хотите обновить существующий документ с помощью setData, вам нужно добавить флаг merge: true