首页 > 解决方案 > Firebase 实时数据库的快照不完整/缺少几层

问题描述

我将数据存储在包含多层嵌套的 Firebase 实时数据库中。一层包括一个键值对,其中一个键“练习”对应于一个数组。

在此处输入图像描述

当我从 FB 检索此数据作为快照时,该层的值显示为undefined. 快照并未完全展平,但该层和下面的任何内容都丢失了。

在此处输入图像描述

这是我检索数据的方式:

loadLanguage({commit}, lang){
    console.log('will try to load: ' + lang)
    DB.ref(`by_language/${lang}`).once('value').then(function(snapshot){
    console.log('snapshot value below is missing several layers')
    var data=snapshot.val()
    console.log(data)
    commit('LOAD_LANGUAGE', {data: data, language: lang})
    });
}       

谁能告诉我为什么快照中的数据与后端存储的数据不同?

标签: javascriptfirebasefirebase-realtime-databasesnapshot

解决方案


用于forEach检索数据:

loadLanguage({commit}, lang){
    console.log('will try to load: ' + lang)
    DB.ref(`by_language/${lang}`).once('value').then(function(snapshot){
    console.log('snapshot value below is missing several layers')
    var data = snapshot.val()
    snapshot.forEach(function(subSnapshot){
    var subData = subSnapshot.val()
    console.log(data)
    commit('LOAD_LANGUAGE', {data: data, language: lang})
     });
    });
}   

推荐阅读