Backbone.js Firebase-回火嵌入引用

Backbone.js Firebase-回火嵌入引用,backbone.js,firebase,backfire,Backbone.js,Firebase,Backfire,我目前正在尝试在新绑定中复制我的非主干Firebase应用程序。以下是我遇到的问题: 我的firebase具有某些根引用。一条/messages包含邮件正文,而/inbox具有以下格式的项目列表: /inbox -- id: timestamp -- id: timestamp /messages -- id: -- message: hello -- user: tom -- id: -- message: hello -- user: tom 。。。等

我目前正在尝试在新绑定中复制我的非主干Firebase应用程序。以下是我遇到的问题:

我的firebase具有某些根引用。一条/messages包含邮件正文,而/inbox具有以下格式的项目列表:

/inbox
 -- id: timestamp
 -- id: timestamp

/messages
 -- id:
   -- message: hello
   -- user: tom

 -- id:
   -- message: hello
   -- user: tom
。。。等

现在这很好,当我以这种方式创建我的收藏时:

    var messageModel = Backbone.Model.extend({});

    var messagesCollection = Backbone.Firebase.Collection.extend({
        model: messageModel,
        firebase: this.userMessagesRef.child(this.user.uid)
    });
我得到了我的消息ID和时间戳列表。现在的问题是,由于这些文档被嵌入或链接,主干网不知道如何获取它们,目前我必须在视图中执行此操作:

    // Set up the message item view
    var messageItemView = Backbone.View.extend({
        tagName: 'div',
        template: Handlebars.compile(itemTpl),
        initialize: function() {
            this.listenTo(this.model, 'change', this.render());
        },
        render: function() {
            var selfView = this;

            self.message.messagesRef.child(this.model.get('id')).once('value', function(snapshot) {

                selfView.model.set(snapshot.val(), {silent: true});
                $(selfView.$el)
                        .addClass('message')
                        .data({
                            'id': selfView.model.get('id'),
                            'message': selfView.model.get('message')
                        })
                        .html(selfView.template(selfView.model.toJSON()));
                return selfView;
            });
            return this;
        }
    });
这完全破坏了所有的主干比较器,使我很难处理嵌入的文档


我希望在Backbone.Firebase.Model中,我可以通过在某个地方传递ID来简单地初始化它,但我似乎不知道该在哪里执行此操作-有什么想法吗?

是否有什么东西阻止了您扩展Backbone.Firebase.Model?我相信你可以用这个简单地观察添加/删除事件。listenTo(…)并在那里应用你的规范化?这是因为当你从模型初始化firebase时,Backbone.firebase.model不知道要使用什么ID-我想象它需要以某种方式初始化ID。我不知道这意味着什么,但是,假设您设置了firebase url,那么模型id可能与此.firebase.name()等效。我的意思是,您肯定需要使用模型的id属性初始化模型的firebase。它不会自动做到这一点。firebase需要在模型上返回其值,然后才能将集合视为“已加载”。这种“加入”功能很容易实现,无需使用
Backfire