当前位置: 首页 > 面试题库 >

如何使用Hashmap在Firebase Firestore Android中添加/更新/删除数组元素?商店数据库

应瀚
2023-03-14
问题内容

我想收集一个用户,用户将有多个商店作为文档,每个文档都有storeName,storeAddress和字段availableProducts。我的问题是如何管理availableProducts数组?我知道Firestore无法处理数组,我应该使用HashMap。我的可用产品可能具有产品名称,产品价格等字段。我是Firebase的新手,如何availableProduct在Android Studio中使用Java管理数组?


问题答案:

编辑:2018年9月12日

从开始August 28, 2018,现在可以更新数组成员。更多信息在这里。

如何在Firebase Firestore中添加/更新/删除数组元素?

简短的答案是您不能!如关于数组的官方文档中所示:

尽管Cloud Firestore可以存储阵列,但可以it does not support查询阵列成员或更新单个阵列元素。

因此,当前无法在Cloud Firestore数据库中添加,更新或删除单个数组元素。

看您的数据库架构,我可以说您没有任何数组。availableProducts是一个对象,它下面有一个名为地图0,其保持两个String属性,spName和spPrice。如果要更新,假设价格,请使用以下代码:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
DocumentReference ref = rootRef.collection("gdgsghs.cok").document("Shsheg");
Map<String, Object> availableProducts = new HashMap<>();
Map<String, Object> zeroMap = new HashMap<>();
Map<String, Object> product = new HashMap<>();
product.put("spPrice", 63.121);
zeroMap.put("0", product);
availableProducts.put("availableProducts", zeroMap);
ref.set(availableProducts, SetOptions.merge());

您的价格将从更新67.368为63.121。



 类似资料:
  • 我想收集用户,用户将有多个存储作为文档,每个文档都有类似于、和的字段。我的问题是,如何管理availableProducts阵列?我知道Firestore不能处理数组,我应该使用HashMap。我的可用产品可能有产品名称、产品价格等字段。我是Firebase的新手,如何在Android Studio中使用java管理可用产品阵列? FireBase Firestore数据库映像

  • 当我点击一个座位时,如何防止重复,这样当我再次点击它时,它就不会追加,而是连续删除/添加。 参见输出的图片

  • 当我点击一个座位时,如何防止重复,这样当我再次点击它时,它就不会追加,而是连续删除/添加。 参见输出的图片

  • 但是它从内部数组对象中移除,而不是电话数组中的零索引元素。尝试使用也没有成功。 如何移除MongoDB中的数组元素?

  • 问题内容: 我有以下代码: 这两个附录未编译。那将如何正常工作? 问题答案: 数组的大小无法修改。如果需要更大的数组,则必须实例化一个新数组。 更好的解决方案是使用可以根据需要增长的容器。如果你需要此形式的数组,该方法将为你提供数组。 如果需要将其转换为简单数组… 但是,使用数组执行的大多数操作也可以使用此ArrayList进行:

  • 问题内容: 我有一个数组例如: 谁能告诉我如何从数组中删除一个元素。例如,我要删除项目“ b”,以使数组如下所示: 我找不到解决办法。到目前为止,我在这里发现的内容不适用于我:( 问题答案: 您不能从数组中删除元素。Java数组的大小是在分配数组时确定的,不能更改。您能做的最好的事情是: 在相关位置分配给数组;例如 这给您带来了处理值所在数组中的“孔”的问题。(在某些情况下,这不是问题……但是在大