В конце концов я нашел ответ, используя Function.prototype.apply () в другом ответе переполнения стека .
Пример для Function.prototype.apply ()
let myArray = ["1", "2", "3"];
docRef.update({
test: firebase.firestore.FieldValue.arrayUnion.apply(this, myArray)
});
Пример для ECMAScript 6
с использованием аргумента распространения
let myArray = ["1", "2", "3"];
docRef.update({
test: firebase.firestore.FieldValue.arrayUnion(...myArray)
});
При передаче массива одним из перечисленных выше методов Firestore будет добавлять только новые элементы массива, которые еще не существуют в массиве Firestore.
Например, запустив вышеописанное, затем запустив следующее
let myArray = ["2", "3", "5", "7"];
docRef.update({
test: firebase.firestore.FieldValue.arrayUnion(...myArray)
});
добавляет только 5 и 7 к массиву в Firestore. Это работает и для массива объектов.