我正在使用Backfire创建一个'索引'集合,用于索引新注册的用户,以便它们可以与Twitter的'typeahead'库(https://github.com/twitter/typeahead.js)一起使用。
var FireIndex = Backbone.Firebase.Collection.extend({
model : Backbone.Model,
firebase: new Firebase(FirebaseUrl + '/index/')
}),
fireIndex = new FireIndex();
var index = fireIndex.create({id: 1, last_name: 'Smith', first_name: 'John'});
不幸的是,似乎'null'值一直被插入'index'集合中,如下所示:
[null,null,{id:1,....},{id:2,....}]
null值会导致typeahead出错。
我确保没有插入任何内容是空的,并且尝试播种'index'集合,但没有用,具有如下所示的'false'值: {index:false}
null值不会显示在集合的GUI版本中,但如果通过REST API访问则会显示,如“https://mydb.firebaseio.com/index.json”。
感谢任何帮助。
托尼
答案 0 :(得分:1)
以下是Firebase提供的解决方案:
感谢repro。这是Firebases阵列推断工作(即使不使用Backfire,你也会看到问题)。每当Firebase看到数字键时,它会假定您希望将数据作为数组而不仅仅是对象。在这种特殊情况下,由于只有名为“1”的键,它假定它是一个数组,索引0处的值为空(Firebase中未设置的所有值都为空)。
要解决这个问题,你可以做一些事情:
希望这有帮助!