我有几百个对象的数组,每个对象(JSONified)看起来像:
{
"progress" : 0,
"sold" : false,
"frame" : 1,
"frameData" : {
"filename" : "file.ma",
"filepath" : "scenes/subscene",
"projectPath" : "/path/to/project",
"projectName" : "TRELCG",
},
"winningBid" : {
"bid" : 31536000,
"hostname" : "localhost"
}
}
做一个花园式的推动:
var base = new Firebase("https://bkvo9o89wxl.firebaseio-demo.com")
var ref = base.push(array);
ref.on("value", function(snap) {
var data = snap.val();
if (data!==null && Array.isArray(data)) console.log(snap.val().length);
}
on("value") 回调永远不会触发。但是,如果相反,我推送数组的较短/子集,例如
var subset = array.slice(0,50);
ref = base.push(subset);
这按预期工作并且回调触发。
更奇怪的是,如果我从对象中删除“frameData”属性,例如
{
"progress" : 0,
"sold" : false,
"frame" : 1,
"winningBid" : {
"bid" : 31536000,
"hostname" : "localhost"
}
}
并推送整个数组,回调照常触发。
在过去的一年里,我在许多项目中使用了 Firebase,并且在比这更大的阵列上完成了数千次同样的事情,但这个真的让我很难过。
我错过了什么,什么给了?