繁体   English   中英

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

[英]Is it possible to update a field of type map in firestore from firebase cloud functions node.js?

当我在我的 node.js 中的 firebase 云函数中执行此操作时:

 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但给出的唯一与地图相关的示例似乎处理更新嵌套字段。 我想创建一个地图并轻松地将 firestore 文档中的一个字段设置为该地图的内容。

我是 node.js 和 firestore 的新手。 预先感谢您的帮助。

Firestore SDK for node 不支持 ES6 Map 对象。 您需要使用普通的 JavaScript 对象来构建 Firestore 地图类型字段。

const o = {
    name: 'foo',
    description 'helloworld'
}

documentRef.update({
    some_field: o
});

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

const updateObj = Object.fromEntries(yourMap);

然后通过它来更新

documentRef.update(updateObj);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM