我正在将 JavaScript 与 CDN 导入一起使用,并且尝试在批量写入中从数组中删除元素,但是,似乎无论我尝试什么,我都会不断收到错误,最常见的是以下错误: 未捕获(承诺中)类型错误:FieldValue.arrayRemove 不是函数
我对 Firestore 使用以下导入:
import { getFirestore, doc, getDoc, writeBatch, FieldValue } from "https://www.gstatic.com/firebasejs/11.0.1/firebase-firestore.js";
我尝试了几种解决方案,我记得的解决方案如下(此处“theirUIDsDocRef”是对带有数组的文档的引用,“UIDs”是数组的名称,“myUID”是包含我要删除的 UID 的变量):
batch.update(theirUIDsDocRef, { "UIDs": FieldValue.arrayRemove(myUID) });
batch.update(theirUIDsDocRef, "UIDs", FieldValue.arrayRemove(myUID));
batch.update(theirUIDsDocRef, { UIDs: FieldValue.arrayRemove(MyUID) });
如果您还有什么需要了解的,请询问。
要解决该问题,您需要使用以下导入:
import { getFirestore, doc, getDoc, writeBatch, arrayRemove } from "https://www.gstatic.com/firebasejs/11.0.1/firebase-firestore.js";
// 👆
然后使用第一个语句,但没有
FieldValue
:
batch.update(theirUIDsDocRef, { "UIDs": arrayRemove(myUID) });
仅当 myUID
与
UIDs
数组中存在的 UID 匹配时,此解决方案才有效。