2

我有几百个对象的数组,每个对象(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,并且在比这更大的阵列上完成了数千次同样的事情,但这个真的让我很难过。

我错过了什么,什么给了?

4

0 回答 0