代码之家  ›  专栏  ›  技术社区  ›  Asif Mushtaq

在嵌套对象firestore android中添加新字段

  •  4
  • Asif Mushtaq  · 技术社区  · 8 年前

    Firestore documentation 有更新嵌套对象字段的代码,但没有关于如何在嵌套对象中添加新字段的代码或文档?

    // Assume the document contains:
    // {
    //   name: "Frank",
    //   favorites: { food: "Pizza", color: "Blue", subject: "recess" }
    //   age: 12
    // }
    //
    // To update age and favorite color:
    db.collection("users").document("frank")
            .update(
                    "age", 13,
                    "favorites.color", "Red"
            );
    

    如您所见,我们正在更新 favorites.color Red ,但如何添加新字段 code favorites 对象?

    假设我想更新上面的文档,如下所示:

    {
      name: "Frank",
      favorites: { food: "Pizza", color: "Blue", subject: "recess", code:32 }
      age: 12
    }
    
    1 回复  |  直到 8 年前
        1
  •  4
  •   Alex Mamo    8 年前

    如果文档确实存在,则如果指定将数据合并到现有文档中,则不会用新提供的数据覆盖其内容,如下所示:

    Map<String, Object> favorites = new HashMap<>();
    Map<String, Object> favorite = new HashMap<>();
    favorite.put("code", 32);
    favorites.put("favorites", favorite);
    rootRef.collection("users").document("frank").set(favorites, SetOptions.merge());