You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中Firebase如何用变量作为ChildSnapshot的取值键

问题根因

该问题属于JavaScript对象属性访问的基础语法问题:使用.点运算符访问对象属性时,JavaScript会将.后的内容作为固定的属性名字面量处理,不会解析为对应变量。你写ChildSnapshot.val().child_var时,程序会尝试读取对象中名为child_var的属性,而非读取child_var变量存储的Firstname对应的属性,因此无法拿到预期值。

可行解决方案

改用方括号[]语法访问动态属性即可,方括号内可以传入变量、表达式,JavaScript会自动解析其值作为属性名读取对应内容。
修正后的代码如下:

let child_var = "Firstname";
firebase.database(CustomerDatabase).ref('Customer').once('value', function (snapshot) {
    snapshot.forEach(function (ChildSnapshot) {
        console.log(ChildSnapshot.val()[child_var]);
    })
})

补充说明:你提供的两段示例代码都缺少forEach回调的闭合括号、以及once回调的闭合括号,实际运行时记得补全避免抛出语法错误。


内容的提问来源于stack exchange,提问作者ZBop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 23:27:02