为了账号安全,请及时绑定邮箱和手机立即绑定

如何更新文档中的 arrayList?

如何更新文档中的 arrayList?

慕田峪7331174 2023-03-23 14:12:07
当我想更新recipIds用户文档中的数组列表时,数组列表被擦除并设置新值。我试图获取旧收藏,然后为其添加新价值并进行更新,但这似乎有点过分了。public void saveRecipeIds(User user) {    String currentUserId = mAuth.getCurrentUser().getUid();    Map<String, Object> userMap = new HashMap<>();    userMap.put("recipeIds", user.getRecipesIds());    db.collection("users").document(currentUserId).update(userMap);}我想用新值更新我的数组列表而不擦除旧列表数据。这是它在 Firestore 中的样子:https://imgur.com/a/LUnYxsa
查看完整描述

1 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

要更新数组,您应该在以下代码行中recipeIds使用like:FieldValue.arrayUnion

db.collection("users").document(currentUserId)
    .update("recipeIds", FieldValue.arrayUnion("newRecipeId"));

编辑:

为了能够更新数组,例如通过添加新元素,您需要向方法传递arrayUnion()一个字符串(id 本身)。您不能传递列表或字符串数组。你不可能那样做。您可以一个接一个地从数组中添加/删除元素。

如果你想用另一个数组更新数组,你应该首先从数据库中获取文档,在客户端进行必要的更改,然后将其写回数据库。


查看完整回答
反对 回复 2023-03-23
  • 1 回答
  • 0 关注
  • 90 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信