Firestore - передать массив в arrayUnion () - PullRequest
0 голосов
/ 11 ноября 2018

Как передать массив в пожарную базу Firebase arrayUnion() функция ?

Я получаю эту ошибку при попытке передать массив.

Error

Error: 3 INVALID_ARGUMENT: Cannot convert an array value in an array value.

Пример

let myArray = ["1", "2", "3"];

docRef.update({
    test: firebase.firestore.FieldValue.arrayUnion(myArray)
});

1 Ответ

0 голосов
/ 11 ноября 2018

В конце концов я нашел ответ, используя 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. Это работает и для массива объектов.

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