1

当我.set(jsonObject)使用 angularfire2 进入 Firebase DB 时,对象被转义(在每个双引号之前添加反斜杠)。
当我手动将其添加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 DB 控制台中的结果是:"{\"key0\":0,\"key1\":1}"

但是当我转到 Firebase DB 控制台并将转义的对象替换为来自console.log(jsonObject).

问题是什么?

谢谢

4

1 回答 1

4

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

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

at 的值/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);
于 2016-09-03T11:31:49.547 回答