firebase - 从 Firebase 读取数据到表格
问题描述
使用 .getData() 检索数据后,我无法拆分数据。firebase 数据的格式为:mainTag: subTag1:"["Test1",70,0,18]", subTag2:"["Test2",65,2,18]" 等...这是目前为止正如我设法得到的那样,因为我不确定数据的格式。我不能直接将其设置为单个单元格或一系列单元格的值,因为参数与工作表的方法签名不匹配。我尝试将数据拆分为一个对象,就像它是一个字符串一样,但在记录器中不断记录空值,所以我不确定如何处理它。
function getData() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("TestSheet");
var range = sheet.getRange("A1:D2");
var firebaseUrl = "https://.....firebaseio.com/";
var base = FirebaseApp.getDatabaseByUrl(firebaseUrl);
var data = base.getData("mainTag");
//range.setValues(data);
Logger.log(data);
Logs: {subTag2=["Test2",65,2,18], subTag1=["Test1",70,0,18]}
}
我的目标是将连续 4 个单元格的值设置为每个子标签内的数据。(A1="Test1", B1=70, C1=0, D1=18) 然后 subtag2 在第 2 行,依此类推。我还没有拆分数据,因为我不确定如何格式化来自 firebase 的数据以便能够在 .setValues() 中使用
解决方案
您需要遍历子标签并访问属于每个键的值
这可以通过Object.keys()最好地实现。
样本:
var data = base.getData("mainTag");
var array = [];
for(var i in data) {
var newdata = Object.keys(data[i]).map(function (key) {
return data[i][key];
});
array.push(newdata);
}
var range = sheet.getRange(1,1, array.length, array[0].length);
range.setValues(array);
推荐阅读
- prometheus - 将 influx stddev 翻译成 promQL
- c# - JSON字符串中特定位置的属性/值的JSON路径
- firebird - 选择在firebird中分配别名的字段名称
- javascript - 从 forEach 循环中的 if 语句返回字符串未定义
- operating-system - 我可以查看我在计算机上执行的操作的命令行等效项吗?
- f# - 从 F# 实例化 C# 9 记录
- javascript - Google Apps 脚本中的 Bitly API V4:尝试调用点击摘要时出错
- reactjs - React 请求 URL 会自行更改,具体取决于调用的位置。(axios 和 fetch 都有)
- dropbox - 重新初始化 Dropbox 无头 cli
- arrays - 用一个 malloc 分配一个字符串和字符串数组