如何更新文档中的 arrayList?

当我想更新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


慕田峪7331174
浏览 93回答 1
1回答

PIPIONE

要更新数组,您应该在以下代码行中recipeIds使用like:FieldValue.arrayUniondb.collection("users").document(currentUserId) &nbsp;&nbsp;&nbsp;&nbsp;.update("recipeIds",&nbsp;FieldValue.arrayUnion("newRecipeId"));编辑:为了能够更新数组,例如通过添加新元素,您需要向方法传递arrayUnion()一个字符串(id 本身)。您不能传递列表或字符串数组。你不可能那样做。您可以一个接一个地从数组中添加/删除元素。如果你想用另一个数组更新数组,你应该首先从数据库中获取文档,在客户端进行必要的更改,然后将其写回数据库。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java