如何在JavaScript中删除firebase实时数据库中具有唯一密钥的子节点



我想删除具有唯一数字作为键的子项。我用.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();     

两件事:

  1. 若要删除节点,需要指定其,而不是其值
  2. 路径中的所有键之间需要一个/,而OldPhoneNo之后缺少一个

所以:

firebase.database().ref('mobile/'+localStorage.getItem('OldPhoneNo')+'/'+data.key).remove();     

最新更新