Firestore 更新地图中的值

Luc*_*bus 1 firebase typescript google-cloud-firestore

我尝试使用云函数和 firestore 将值添加到地图中。地图可能不存在,并且不存在带有密钥的条目personID

现在我通过以下代码来完成此任务:

if (!userData!.requests){
    userData["requests"] = {};
}
if (!userData!.requests.outgoing){
    userData!.requests["outgoing"] = {};
}

userData!.requests.outgoing[`${personID}`] = data;
t.update(usersRef, userData!);
Run Code Online (Sandbox Code Playgroud)

有没有更简单的方法来做到这一点?有没有一种方法不需要先读取数据?

Fra*_*len 5

如果您只有映射,则应该能够使用点表示法来写入/更新嵌套字段:

usersRef.update({
    ["requests.outgoing."+personID]: data
})
Run Code Online (Sandbox Code Playgroud)

如果数据路径中的任何位置都有数组,则这将不起作用。您只能添加/删除数组中的项目而不读取它们,更新任何现有数组元素需要读取-更新-写入周期。