javascript - 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})
});
}
谁能告诉我为什么快照中的数据与后端存储的数据不同?
解决方案
用于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})
});
});
}
推荐阅读
- firebase - 当我在 Eclipse 中添加 firebase-admin maven 依赖项时出现“指定范围内没有可用于 io.grpc:grpc-core:jar:[1.13.1] 的版本”错误
- gulp - 修改 gulpfile.js (gulp 4.0)
- css - 不支持 HLMT2PDF 列表类型
- python - 如何在python中将json转换为csv
- java - 为什么 SootMethod 不可序列化?
- regex - 如何使 Nginx 规则适用于深度链接?
- python - 将元素数组更改为多个元素数组
- jquery - 使用 AJAX 或 jQuery 为动态表中的每一行创建超链接
- java - 为什么使用堆栈容器更慢?
- laravel - ImageMagick 在控制器中工作但在队列中“不可用”?