我想删除具有唯一数字作为键的子项。我用.push((创建了唯一的数字。我的数据库结构是这样的-
{
mobile{
+917654387629{
-NE0wCPZV-tRi84DHFxs:"gc27dghd07671a91e3" //-NE0wCPZV-tRi84DHFxs(unique key),gc27dghd07671a91e3 (value of unique key)
-NE5-b0YTUVPZ7tad9Dz:"gc2ie23c636gde57a6" //-NE5-b0YTUVPZ7tad9Dz(unique key)
}
}
}
我从用户那里获得手机号码和值,我想匹配号码和值。如果我在给定的手机号码下获得给定的值,那么我只想删除该唯一密钥及其值。我试过这个代码
firebase.database().ref('mobile/'+localStorage.getItem('OldPhoneNo')).once('value',snapshot =>{
snapshot.forEach((data) => {
console.log(data.val())
console.log(data.key)
if(data.val() == qrCodeMessage){
firebase.database().ref('mobile/'+localStorage.getItem('OldPhoneNo')+(data.val())).remove();
}
})
});
但我无法理解如何删除唯一密钥的值。
这显然是错误的:
firebase.database().ref('mobile/'+localStorage.getItem('OldPhoneNo')+(data.val())).remove();
两件事:
- 若要删除节点,需要指定其键,而不是其值
- 路径中的所有键之间需要一个
/
,而OldPhoneNo
之后缺少一个
所以:
firebase.database().ref('mobile/'+localStorage.getItem('OldPhoneNo')+'/'+data.key).remove();