Sol*_*sus 2 javascript firebase typescript google-cloud-firestore
当我尝试将地图写入 firebase 时,我遇到了以下错误:
FirebaseError: Function DocumentReference.set() called with invalid data. Unsupported field value: a custom Map object (found in field documentData.elements)
Run Code Online (Sandbox Code Playgroud)
我想将地图而不是数组写入 firebase,以便能够在不覆盖整个数组的情况下合并数据集,而只添加或删除地图的条目。但是,即使 firebase 文档说它支持地图,我也无法使地图正常工作。
我的界面是这样的:
export interface Element {
uid:string;
value:string;
}
export interface DocumentData {
uid: string;
elements: Map<string, Element>;
}
Run Code Online (Sandbox Code Playgroud)
将它们写成文档不起作用,并因上述错误而失败。
let documentData = {uid:"test_uid", elements: new Map([{"one", "test_string"}],[{"two", "test_string"}]]);
...
...
.doc(documentData.uid)
.set({documentData, {merge: true});
Run Code Online (Sandbox Code Playgroud)
有人知道如何将地图写入存储吗?这实际上是地图的问题还是我使用的设置错误?
Firestore 只接受包含要写入文档的字段和值的普通旧 JavaScript 对象。它不接受 ES6 Map 对象,这完全不是一回事。
只需构建对象并将其传递给set():
const data = {
uid: "test_uid",
elements: {
one: "test_string",
two, "test_string"
}
}
set(data, {merge: true})
Run Code Online (Sandbox Code Playgroud)
我建议查阅文档以获取更多示例。Java 支持 Map 对象,但 JavaScript 不支持。
上面的代码会更新两个字段,一个“元素”将是一个 Firestore 地图类型字段。
| 归档时间: |
|
| 查看次数: |
975 次 |
| 最近记录: |