删除Firebase中的项目

时间:2017-12-27 06:30:40

标签: swift firebase firebase-realtime-database

我在Firebase中有以下数据:

Calling JMX MBean method from a shell script

在" -Kabn1954"分支,我想删除项目" apple"。使用Swift,我使用以下命令删除特定分支中特定索引的项目:

pip3 install ImageChops

但是,执行此操作后,Firebase数据如下所示:

spec

正如您所看到的,此分支中的数据现在直接从索引0转到索引2.因此,我收到错误。如何删除索引1处的项目时,其余两个项目的索引为0,后跟索引为1?

1 个答案:

答案 0 :(得分:1)

Firebase不会actually store the data as an array,而是将其存储为您正在观察的索引键入的对象。该指南建议您尝试重构数据,以便不使用类似数组的行为。

如果这不可能或者真的不可取,我不知道Swift API是如何工作的,但是在python和JavaScript库中,如果你在父foods元素上观察,你将会获取一个可以拼接并推送更新的数组对象。我猜测在Swift中也是如此,API indicates也可以返回NSArray

正如博客文章所提到的,当您想要重新索引时,您需要更新整个阵列,因为Firebase不会为您执行此操作。可以在setValue()引用上调用的NSArray accepts an foods。在这里要小心竞争条件,你需要将读写封装到单个事务中,以避免丢失更新。