2016-07-27 35 views
0

的一部分,我用火力点多位置更新,更新了一些在我的数据库位置。火力地堡多位置更新,删除冗余数据更新

其中一个更新的路径中包含可能被改变,因此在建立这是正确的新路径的位置新记录更新的一部分的值。这会在原始位置留下冗余数据,我需要将其作为更新的一部分进行删除。作为更新的一部分,有人能给我一个关于如何删除冗余数据的指针吗?

我使用下面的代码创建我的更新: -

var updatedUserDataContent = { 
    title: $scope.postToUpdate.title 
    commenter: $scope.postToUpdate.commenter 
}; 

updatedUserData["Posts/" + $scope.postToUpdate.$id] = updatedUserDataContent; 

updatedUserData["UserPosts/" + $scope.postToUpdate.commenter + "/" + $scope.postToUpdate.$id] = updatedUserDataContent; 

commenter可以通过用户在记录保存离开冗余数据在原commenter节点之前改变。我试过使用安全规则,但是这些停止创建数据而不是删除数据。

编辑1

JSON的要求。 更新前我有

{ 
    "Not assigned" : { 
"-KNfs3OhBmbb93w9VEW-" : { 
    "title": "vytg", 
    "commenter": "Not assigned" 
    } 
    } 
} 

更新后(从 “未分配” 转变commenter后, “用户A”)我有

{ 
    "Not assigned": { 
"-KNfs3OhBmbb93w9VEW-": { 
    "title": "vytg", 
    "commenter": "Not assigned" 
} 
    }, 
"User A" : { 
"-KNfs3OhBmbb93w9VEW-" : { 
    "title": "vytg", 
    "commenter": "User A" 
} 
    } 
} 

,但我只想

{ 
"User A" : { 
"-KNfs3OhBmbb93w9VEW-" : { 
    "title": "vytg", 
    "commenter": "User A" 
} 
    } 
} 
+0

,你能否告诉最小的JSON(文字,没有截图请),您在更新之前和您想要的更新后有哪些? –

+0

JSON现在在原始问题 – Janbango

回答

1

您正在尝试移动/重命名节点,该节点不是数据库支持的操作。

由于新的正确写入数据,所有需要的是,你还明确了旧节点。把null在该位置会照顾的是:

updatedUserData["Not assigned"] = null; 
+0

谢谢弗兰克,有道理。我现在遇到的问题是获取'$ scope.postToUpdate.commenter'的原始值,以便我可以在路径中使用它来将其设置为'null'。我正在使用angularJS,并认为angular.copy将是一种去的方式,但不能让它工作。我想这是另一个StackOverflow问题! – Janbango

+0

好吧,设法通过使用angular.copy来存储原始评论者。谢谢你的帮助 – Janbango