无效地将类型“对象”用作Firestore参数

时间:2019-06-11 16:51:08

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

我正在使用node-red-contrib-cloud-firestore将数据添加到我的Firestore集合中。一切顺利,直到我决定在数据中添加嵌套数组:

{ firstname: 'John',
  contact:
   { name: 'Jane Doe',
     company: 'Inc',
     mail: 'jdoe@inc.com' },
  name: 'Doe',
  email: 'johndoe@inc.com' }

module中的代码可用

this.firestore.collection(col).add(payload)

我仔细检查了负载,所有内容都与上面的内容完全一样,但是显示错误

Error: Value for argument "data" is not a valid Firestore document. Invalid use of type "object" as a Firestore argument (found in field contact).

我是否需要了解有关嵌套对象的窍门?

谢谢

2 个答案:

答案 0 :(得分:2)

实际上,问题出在虚拟机中运行的NodeRED函数并复制所有原型导致严格的相等性失败。

解决方法是在NodeRED函数外部创建对象。 NodeRED负责人here

提供了更多详细信息

答案 1 :(得分:0)

如果您尝试添加嵌套地图而不是嵌套数组,则Firestore支持。

确定设置文档时,您确定“联系人”字段不是let stream = OutputStream(toBuffer: UnsafeMutablePointer(mutating: someString), capacity: someString.data(using: .utf8)!.count) 吗?