Firebase onCall函数中data参数的数据类型及删键问题
Firebase Cloud Functions:
functions.https.onCall 中data的类型及键删除方案 functions.https.onCall接收的data本质是普通JavaScript对象(Plain Object),并非ES6的Map类型。客户端传入的"map对象"经过JSON序列化/反序列化后,会被转换为普通JS对象,你不需要强制转换类型,直接用delete操作符就能删除键。
举个可行的示例:
exports.yourFunction = functions.https.onCall((data, context) => { // 删除指定键,比如"targetKey" delete data.targetKey; // 若键名是动态的,可用方括号语法 // delete data[dynamicKeyName]; // 后续处理逻辑 return { result: data }; });
你之前删除失败,应该是误把它当成Map调用了data.delete('key')方法,这才会触发"并非map类型"的报错。普通JS对象的键删除必须使用delete操作符。
补充说明:data的结构由客户端传入的参数决定,但经过Firebase传输层解析后,只会保留JSON支持的基础类型:字符串、数字、布尔值、普通对象、数组,Map、Set这类复杂类型会被自动转换为普通对象或数组,无法直接保留原类型。
内容的提问来源于stack exchange,提问作者Yuki
相关产品推荐
相关产品推荐

