无法在 Firestore 中使用 arrayRemove。使用无效数据调用函数 DocumentReference.update()

Cant use arrayRemove in Firestore. Function DocumentReference.update() called with invalid data

尝试使用“arrayRemove”删除数组中的元素时看不到我的代码中的问题。

这是我的代码:

const getRef = firebase.firestore().collection('customers').doc('andreas');

const response = await getRef.get();  

console.log(response.data()); // answer { bookings: [ '123booking', '456booking' ] }


// then i'm trying to delete the element with value 123booking: 

let deleteRef = firebase.firestore().collection('customers').doc('andreas');

const removeRes = await deleteRef.update({
    bookings: admin.firestore.FieldValue.arrayRemove('123booking')
});

这是我的错误信息:

Error [FirebaseError]: Function DocumentReference.update() called with invalid data. Unsupported field value: a custom object (found in field bookings in document customers/andreas)

显然您混淆了 JS SDK 和 Admin SDK 的使用:

一方面,你做到了

const getRef = firebase.firestore().collection('customers').doc('andreas');  // JS SDK

另一方面,你做

bookings: admin.firestore.FieldValue.arrayRemove('123booking')  // Admin SDK

如果您实际使用的是 Admin SDK(请参阅问题标签),您应该这样做

const getRef = admin.firestore().collection('customers').doc('andreas');

另一方面,如果您没有使用 Admin SDK,即此代码是在网络应用程序中执行的,请更改以下行

bookings: admin.firestore.FieldValue.arrayRemove('123booking')

bookings: firebase.firestore.FieldValue.arrayRemove('123booking')