A. *_*azi 3 javascript firebase firebase-realtime-database
大家好,我在这里得到奇怪的行为.当用户单击按钮时,我尝试更新一个特定的子节点.这是我的代码:
var updates2 = {};
var offer = {
minusAccandShare: 2,
}
updates2['/offerLight/' + keyReal] = offer;
updates2['/offer/' + keyReal] = offer;
return firebase.database().ref().update(updates2);
Run Code Online (Sandbox Code Playgroud)
一切正常,正确的节点已更新,但在更新minusAccandShare时,其他所有内容都将被删除
结构如下:
offer
jifdjsiavdas
minusAccandShare: -6
offerName: "Replacement"
offerText: "You have the choice to..."
...
Run Code Online (Sandbox Code Playgroud)
它变成了
offer
jifdjsiavdas
minusAccandShare: 2
Run Code Online (Sandbox Code Playgroud)
我曾经多次使用这种方法在firebase指南中描述,它总是像魅力一样工作.但是我用新密钥创建了完全新的节点,因此没有任何东西可以删除.
谢谢大家:D
小智 5
您的代码中实际发生的是以下内容:
您正在完全写入密钥,从而擦除数据集中的所有属性.
这个
updates2['/offer/' + keyReal] = offer;
Run Code Online (Sandbox Code Playgroud)
擦除该特定键中的整个数据.
试试这个:
firebase.database().ref('offer/' + keyReal).update({
minusAccandShare: 2,
});
Run Code Online (Sandbox Code Playgroud)
这允许您确保更改firebase数据集中的指定属性.
我希望这有帮助