Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase:更新问题_Firebase_Firebase Realtime Database - Fatal编程技术网

Firebase:更新问题

Firebase:更新问题,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,我有一个具有以下结构的数据库: 我需要更新订单的amount子值,然后添加一个新的子updatedAt,它将具有此更新的时间戳。 我使用一个对象,其中包含我要更新的路径,然后调用ref.update(dataToBeUpdated) 问题是,当我调用update()时,时间戳中没有更新的子项被删除。。它的行为就像我重写了order节点,而没有编辑它的一些子节点。。有什么帮助吗 更新: 下面是代码的外观: var dataToUpdate={[orderPath]:{'amount':newAm

我有一个具有以下结构的数据库:

我需要更新订单的amount子值,然后添加一个新的子
updatedAt
,它将具有此更新的时间戳。 我使用一个对象,其中包含我要更新的路径,然后调用
ref.update(dataToBeUpdated)

问题是,当我调用
update()
时,时间戳中没有更新的子项被删除。。它的行为就像我重写了order节点,而没有编辑它的一些子节点。。有什么帮助吗

更新: 下面是代码的外观:
var dataToUpdate={[orderPath]:{'amount':newAmount'updatedAt':firebase.database.ServerValue.TIMESTAMP}}返回ref.update(dataToUpdate)

写入数据过度,很可能是因为您没有提供完整的路径。例如,如果您只提供
ref.child(“postID”).update(update)
则覆盖了该“postID”下的所有内容。如果不查看您的数据和代码,我就无法提供准确的解决方案。如果你更新你的帖子,我可以提供更多详细信息,但现在请尝试以下方法:
ref.child(“amount”).update(newAmount)
ref.child(“updatedAt”).update(newTimestamp)

第一个应该覆盖旧的金额,第二个应该添加带有时间戳的子updatedAt

另一种方法是下载该订单的所有现有数据并在本地更新,然后重新上传整个订单


查看一下

是否可以提供更多的代码快照,例如,如何设置值,以及如何更新子项,
ref
的值等等。var dataToUpdate={[orderPath]:{'amount':newAmount,'updatedAt':firebase.database.ServerValue.TIMESTAMP}返回ref.update(dataToUpdate)那么更新和设置之间的区别是什么。。根据你的解释,我想他们也会这么做