如何在 Firestore 中批量写入时从数组中删除值?

问题描述 投票:0回答:1

我正在将 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) });

如果您还有什么需要了解的,请询问。

javascript arrays firebase google-cloud-platform google-cloud-firestore
1个回答
2
投票

要解决该问题,您需要使用以下导入:

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 匹配时,此解决方案才有效。
    

© www.soinside.com 2019 - 2024. All rights reserved.