如何调整代码访问Firebase中带额外0层级的嵌套对象?
解决方案
你只需要调整数据库引用路径,并修正代码里的变量名错误即可,修改后的代码如下:
function FetchAllData() { // 直接指向domain下的0层级节点 firebase.database().ref('domain/0').once('value',function(snapshot){ snapshot.forEach( function(childSnapshot){ // 修正变量名,和后续调用保持一致 let name = childSnapshot.val().Name; let roll = childSnapshot.val().Profile; let sec = childSnapshot.val().Type; let gen = childSnapshot.val().URL; addItemsToList(name, roll, sec, gen); } ) }); } window.onload = FetchAllData; // 修正onload赋值方式,避免函数立即执行
关键修改点:
- 数据库引用路径从
domain改为domain/0,直接定位到那层固定的0节点 - 修正回调函数参数名:原代码参数名与后续调用的变量名不匹配,统一改为
childSnapshot避免报错 - 修正
window.onload写法:原代码会立即执行函数并把返回值赋值给onload,正确写法是直接赋值函数本身
内容的提问来源于stack exchange,提问作者user20659015
相关产品推荐
相关产品推荐

