是否可以从firebase云函数node.js更新firestore中的类型映射字段



当我在firebase云函数中的node.js中这样做时:

var my_map = new Map();
my_map.set('name','foo');
my_map.set('description','helloworld');
//update the firestore document
let updateDocument = documentRef.update({ 
some_field: my_map
});

我在日志中得到以下错误:

查询事件失败错误:Update((需要一个JavaScript对象或一个字段/值对的交替列表,后面可以跟一个可选的前置条件。参数"dataOrField"的值不是有效的Firestore文档。输入不是一个普通的JavaScript对象(位于字段"some_field"中(。

我已在此处查看了文档https://firebase.google.com/docs/firestore/manage-data/add-data但给出的唯一与映射相关的示例似乎是处理更新嵌套字段。我想创建一张地图,并轻松地将消防仓库文档中的字段设置为该地图的内容。

我是node.js和firestore的新手。提前感谢您的协助。

节点的Firestore SDK不支持ES6-Map对象。您需要使用一个普通的JavaScript对象来构建Firestore映射类型字段。

const o = {
name: 'foo',
description 'helloworld'
}
documentRef.update({
some_field: o
});

正如Doug Steven所说,它不支持map,您可以通过以下方式将map转换为纯JS对象:

const updateObj = Object.fromEntries(yourMap);

然后将其传递给更新

documentRef.update(updateObj);

相关内容

  • 没有找到相关文章

最新更新