Firebase - JSON 发送的对象结果已转义

Firebase - JSON sent object results escaped

当我 .set(jsonObject) 进入 Firebase DB 时,使用 angularfire2,对象被转义(在每个双引号前添加反斜杠)。
当我手动将 jsonObject 添加到 DB(console.firebase.google.com) 时,一切正常。

    let obj = {
      key0 : 0,
      key1 : 1
    };
    console.log(obj);
    
    let jsonObject = JSON.stringify(obj);
    console.log(jsonObject);

// af is AngularFire instance
af.database.object("/myList/0").set(jsonObject)

Firebase 数据库控制台中的结果是:"{\"key0\":0,\"key1\":1}"

但是当我转到 Firebase 数据库控制台并将转义对象替换为 console.log(jsonObject) 中的值时,我得到了预期的结果。

有什么问题?

谢谢

如果您以这种方式设置值:

let obj = {
  key0 : 0,
  key1 : 1
};
let jsonObject = JSON.stringify(obj);
af.database.object("/myList/0").set(jsonObject);

/myList/0 处的值将是一个字符串:

{"key0":0,"key1":1}

控制台中显示的值将显示为JSON。当格式化为 JSON 时,上面的字符串值将是:

"{\"key0\":0,\"key1\":1}"

如果您使用对象而不是 JSON 字符串设置值,您应该会看到预期的行为:

 let obj = {
  key0 : 0,
  key1 : 1
};
af.database.object("/myList/0").set(obj);