我有一个具有以下结构的数据库:
我需要更新订单量的子值,然后添加一个新的子updatedAt
,它将具有此更新的时间戳。
我使用的对象包含我想要更新的路径,然后调用ref.update(dataToBeUpdated)
。
问题在于,当我调用update()
时删除时间戳时我没有更新的孩子..它就像我重写订单节点而不是编辑它的一些子节点一样..任何救命?
更新: 以下是代码的外观: var dataToUpdate = {[orderPath]:{' amount':newAmount,' updatedAt':firebase.database.ServerValue.TIMESTAMP}}返回ref.update(dataToUpdate)
答案 0 :(得分:0)
过度编写数据,很可能是因为您没有提供完整路径。例如,如果您只提供ref.child("postID").update(update)
,那么您将覆盖该“postID”下的所有内容。如果没有看到您的数据和代码,我无法真正提供精确的解决方案。如果您更新了帖子,我可以提供其他详细信息,但现在请尝试以下操作:ref.child("amount").update(newAmount)
和ref.child("updatedAt").update(newTimestamp)
第一个应该覆盖旧数量,第二个应该将子updateAst添加到您的时间戳。
另一种方法是下载该订单的所有现有数据,在本地更新它,然后重新上传整个数据。