如何将数组传递到Firebase Firestore arrayUnion()
function?
尝试传递数组时出现此错误。
错误
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)
});
答案 0 :(得分:2)
我最终找到了在另一个Function.prototype.apply()中使用stack overflow answer的答案。
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)
});
只会在Firestore中向数组添加“ 5”和“ 7”。这也适用于对象数组。