错误:参数"数据"不是有效的文件。输入不是纯JavaScript对象

时间:2018-02-08 17:04:12

标签: node.js typescript firebase google-cloud-firestore

我收到错误

  

错误:参数"数据"不是有效的文件。输入不是简单的   JavaScript对象。

使用firebase admin SDK更新文档时。这里是Typescript代码。

var myDoc = new MyDoc();
myDoc.Public.Name = "Jonh Doe" //setup up content

admin.firestore()
     .collection('MyDocs')
     .doc("Id1")
     .set(myDoc);

5 个答案:

答案 0 :(得分:3)

如果其他人遇到同样的问题,解决方法是简单地使用Json来实例化对象,如下所示:

setVisible()

答案 1 :(得分:3)

我做了类似的事情:

var myDoc = <MyDoc> {
    Public: {
        Name: "Jonh Doe"
    }
}

它在语义上是相同的,我只是觉得它有点清洁。

答案 2 :(得分:2)

我有同样的问题,在我的情况下我忘记在发送请求时将Content-Type:application/json添加到我的标题中,然后该对象被视为字符串,我得到了该错误。

答案 3 :(得分:0)

您可以通过以下方式重新创建js对象: {...__data}

return refDB.set({...__data}).then((newData) => {

})

答案 4 :(得分:-1)

使用Postman时,发布时必须选择JSON(application/json)。这样会自动将所选的content-type设置为标题。

See picture