如何在 Firestore 的父映射字段中添加新的映射字段?
How to add a new map field inside a parent map field in Firestore?
我想在另一个地图字段中添加一个新的地图字段。
我的数据结构如下所示:
我想在 'Filed 1' 中的 'field a' 之后添加一个 'field b' (请原谅我的错别字)。
我的代码是这样的
const collsRef = doc(db, "collections", collectionUid); // get the right document
await setDoc(collsRef, { sellectData }, { merge: true });
但这不仅给我一个错误,我相信这段代码只会添加一个与 'Filed 1'
相同级别的新字段
触发不支持字段值错误的数据类型是一个JS对象,我需要在提交到数据库之前解析它吗?
我删除了数据并保留了结构和语法,因为它包含个人敏感数据。我希望这足以说明问题。
非常感谢
我不确定 sellectData
结构是什么样的,但您必须构建一个与 Firestore 具有相同结构的对象。请参阅下面的示例代码:
const collsRef = doc(db, "collections", collectionUid);
let sellectData = {
"field b": { "key b" : "value b" }
}
await setDoc(collsRef, {
"Filed 1": sellectData
}, { merge: true });
这将导致(已更正您的拼写错误):
更新:
您有两个选项可以将对象键设置为变量。
您需要先制作对象,然后使用[]
设置它。:
let key = "Field 1";
let sellectData = {
"field b": { "key b" : "value b" }
}
await setDoc(collsRef, {
[key]: sellectData
}, { merge: true });
或者,通过构建对象本身。
let key = "Field 1";
let sellectData = {
[key] : { "field b":
{ "key b" : "value b" }
}
}
// Remove the curly brackets `{}` in this case.
await setDoc(collsRef,
sellectData,
{ merge: true });
有关详细信息,请参阅 Update fields in nested objects。
我想在另一个地图字段中添加一个新的地图字段。
我的数据结构如下所示:
我想在 'Filed 1' 中的 'field a' 之后添加一个 'field b' (请原谅我的错别字)。
我的代码是这样的
const collsRef = doc(db, "collections", collectionUid); // get the right document
await setDoc(collsRef, { sellectData }, { merge: true });
但这不仅给我一个错误,我相信这段代码只会添加一个与 'Filed 1'
相同级别的新字段触发不支持字段值错误的数据类型是一个JS对象,我需要在提交到数据库之前解析它吗?
我删除了数据并保留了结构和语法,因为它包含个人敏感数据。我希望这足以说明问题。
非常感谢
我不确定 sellectData
结构是什么样的,但您必须构建一个与 Firestore 具有相同结构的对象。请参阅下面的示例代码:
const collsRef = doc(db, "collections", collectionUid);
let sellectData = {
"field b": { "key b" : "value b" }
}
await setDoc(collsRef, {
"Filed 1": sellectData
}, { merge: true });
这将导致(已更正您的拼写错误):
更新:
您有两个选项可以将对象键设置为变量。
您需要先制作对象,然后使用[]
设置它。:
let key = "Field 1";
let sellectData = {
"field b": { "key b" : "value b" }
}
await setDoc(collsRef, {
[key]: sellectData
}, { merge: true });
或者,通过构建对象本身。
let key = "Field 1";
let sellectData = {
[key] : { "field b":
{ "key b" : "value b" }
}
}
// Remove the curly brackets `{}` in this case.
await setDoc(collsRef,
sellectData,
{ merge: true });
有关详细信息,请参阅 Update fields in nested objects。