在遗留的firebase中,以加号('+')字符作为Key的数据可以'不能删除

In legacy firebase, data with the plus ('+') character as Key can't be deleted

本文关键字:字符 Key 数据 删除 不能 firebase      更新时间:2023-09-26

我还没有迁移到新的firebase计划。但在旧的firebase系统中,我发现除了文档中提到的无效字符外,数据键不能包含加号("+")。当我试图删除带有密钥类型的数据但失败时(使用Firebase.remove()),我发现了问题。

以下是我重现的问题。

  1. 使用默认的火球规则

    {"规则":{".read":true,".write":true}}

  2. Key/Value分别插入为++/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');        
        }
    }); 
    

运行完代码后,程序将运行到包含console.log('succeeded');的回调块中。但是数据(++/ff)仍然存在。

适用于我:

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,控制台