首页 > 解决方案 > Firebase 删除一个数组项

问题描述

我想从 Firestore 中的数组中删除一个值。我正在使用 firebase 功能,并在删除用户后更新此字段。我尝试过更新数组,尝试过 arrayRemove 以及其他各种行。因为每次我想运行测试时都必须进行部署,所以每次都很难构建和删除数据。

所以我希望有人可以帮助我在这里找到这个解决方案:

我想遍历一个 ID 列表(数据库中的用户)并提取他们的匹配项,并从他们的匹配项列表中删除一个特定的 ID。

当我运行它时,它不知道是什么firebase.firestore。所以我不确定如何使用这种类型的FieldValue.delete(). 这部分的目标是什么?“admin.FieldValue.delete()”?

admin.firestore()
.collection("Users")
.doc(matches[i])
.update({
  [userId]: firebase.firestore.FieldValue.delete(),
});

我也试过这个:

admin
.firestore()
.collection("Users")
.doc(matches[i])
.update({
  matches: admin.firebase.firestore.FieldValue.arrayRemove(userId),
});

但它又不知道是什么firebase.firestore。从数组中删除一个值的正确方法是什么?

此外,我担心在 for 循环中进行标注,但我没有看到解决方法。有没有人有什么建议?这些不需要是异步的,因为所有事务都不相互依赖。

我在 firebase 函数中收到的错误消息:

ReferenceError:未定义firebase

标签: javascriptfirebasegoogle-cloud-firestorefirebase-admin

解决方案


如果您像这样导入 Admin SDK:

const admin = require("firebase-admin");

你会想要使用admin.firestore.FieldValue.delete(). 相同的模式arrayRemove()


推荐阅读