【发布时间】:2015-01-22 05:53:33
【问题描述】:
我明白了:
"users" : {
"simplelogin:129" : {
"-JbX-CJuMDf1H8-yCETV" : {
"gold" : {
"receive" : {
"amount" : 1,
"date" : 1416835946409,
"email" : "you@me.com"
}
}
},
但我需要这样的东西:
"users" : {
"simplelogin:130" : {
"date" : 1416834728422,
"email" : "yam@dam.com",
"id" : "130",
"gold" : {
"receive" : {
"-JbWva7Gh9Y3RarlF77h" : {
"amount" : 1,
"date" : 1416834737201,
"email" : "you@do.com"
},
如果我使用 .update 而不是 .push,我会得到我需要的文件结构,但它会为每个事务覆盖它,而不是每次都添加一个新的。
receive.orderByChild("email").equalTo( $scope.user.email ).once('child_added', function(snap) {
snap.ref().push({gold: {receive: myGold}}).then(function() {
});
【问题讨论】:
-
调用
push会为您生成一个具有唯一 ID 的新节点。如果每次都会这样做,所以当你推送一个新的传输时,你不能覆盖以前的传输。请包含最少的代码来显示您的问题并清楚地显示您得到的结果和您期望的结果(最好两者都是真实的 JSON 结构,而不是它们的文本描述)。设置一个显示问题的 jsfiddle/jsbin/plunkr 也可能是值得的。 -
添加了图片,希望能让困境更加清晰 :) 我需要在“gold:receive”下的一个新节点,而不是在它捕捉到的位置下的一个新节点。
-
请不要图片,只有代码和数据(当有人试图重现您的问题时,它们是可搜索和复制/粘贴的)。现在我将不得不在我的答案中输入它,我本可以花时间帮助别人。