如何从Firebase更新每个孩子的键值?

时间:2018-11-22 20:56:00

标签: ios objective-c firebase-realtime-database

自从最近几个小时以来,我一直对此感到困惑,并且我已经尝试了所有可能在firebase中更新这些值的方法。

Here is the value to be updated

我要更新

  

is_read_p:“ 0”

  

is_read_p:“ 1”

用于数据库中的每个记录。

到目前为止,我已经尝试了这段代码,

[[[[_mainRef child:@"messages"] child:[NSString stringWithFormat:@"359_361"]]childByAutoId] updateChildValues:@{@"is_read_c":@"0"}];

但是,它没有更新,而是添加了另外三个孩子,如下所示:

Inserted instead of Updating

我知道一定有一个愚蠢的错误,否则我可能会遗漏一些东西。请帮助我找到缺少的部分。谢谢。 :)

1 个答案:

答案 0 :(得分:0)

  • 每次调用childByAutoId时,客户端都会创建对新的唯一子节点的引用。由于您随后在该新位置调用updateChildValues,因此您将创建一个新的子节点,而不是更新现有的子节点。

  • Firebase不支持更新查询。您需要执行查询,处理每个匹配的节点,然后分别进行更新。

    另请参阅: