在旧版Firebase中,无法删除带有加号(' +')字符作为密钥的数据

时间:2016-07-25 04:20:26

标签: javascript firebase

我还没有迁移到新的火力计划。但是在旧的firebase系统中,我发现数据密钥不能包含' plus'除document提到的无效字符外,还会签署(' +')。当我尝试删除具有密钥类型但未通过的数据时,我发现了问题(使用Firebase.remove())。

以下是我重现这个问题的内容。

  1. 使用默认的firebase规则

    {   "规则":{             " .read":是的,             " .write":是的         } }

  2. 键/值的一个数据分别作为 ++ / ff 插入。

  3. 在javascript代码方面,运行此代码。

    var s = 'https://myfirebase.firebaseio.com';
    var dd = new Firebase(s + '/++');
    
    dd.remove( function(error) {
        if (error) {
            console.log('failed');
        } else {
            console.log('succeeded');        
        }
    }); 
    
  4. 运行代码后,程序将进入包含console.log('succeeded');的回调块。但数据( ++ / ff )仍然存在。

1 个答案:

答案 0 :(得分:0)

适合我:

var ref = new Firebase('https://stackoverflow.firebaseio.com/38559661');

ref.on('value', function(snapshot) {
  console.log(snapshot.key(), snapshot.val());
});

setTimeout(function() {
  console.log('Adding child');
  ref.child('++').set(true);
},2000);

setTimeout(function() {
  console.log('Removing child');
  ref.child('++').remove();
},4000);

工作jsbin:http://jsbin.com/dowuho/edit?html,js,console