网店项目中通过自定义函数读取Firestore指定SKU商品属性的问题
你代码里的核心问题如下:
- 动态属性读取语法错误:你使用
+ '.' + data的写法属于字符串拼接逻辑,doc.data()返回的是JS对象,和字符串拼接时会自动转为[object Object]文本,完全无法实现动态读取属性的效果。JS读取对象的动态属性需要使用方括号语法,同时你调用getData(price)时,如果要传入的是属性名字符串,需要给price加引号,否则会被识别为未定义变量抛出报错。 - 查询逻辑缺少服务端筛选:你现在的写法是全量拉取
products集合下的所有文档再本地遍历,数据量稍大就会严重浪费请求资源、拉低查询效率。Firestore的query支持传入where条件,直接在服务端筛选出sku匹配的目标文档,无需全量拉取后本地过滤。 - 异步函数返回值处理逻辑缺失:你定义的
getData是async异步函数,直接调用返回的是Promise对象,不能直接同步拿到查询结果,后续调用时需要用await或者.then()的方式处理返回的查询结果。
内容的提问来源于stack exchange,提问作者Marius
相关产品推荐
相关产品推荐

