背景
我正在尝试构建一个简单的SMS消息传递应用程序,它在根级别存储了两个树:numbers
和messages
- 以及它们之间的双向关系using indices。
我希望能够快速获取特定号码的消息历史记录,将新消息发送到新号码,并将新消息发送到现有号码,呈现发送的&实时收到消息。
我的数据结构如下:
{
"messages" : {
"-KGZyhbh9sGsizizVyyq" : {
"5551234" : true,
"body" : "Foo"
},
"-KGZykRFPtdWY2fWb62u" : {
"555000" : true,
"body" : "Bar"
}
},
"numbers" : {
"555000" : {
"messages" : {
"-KGZykRFPtdWY2fWb62u" : true
}
},
"5551234" : {
"messages" : {
"-KGZyhbh9sGsizizVyyq" : true
}
}
}
}
当新邮件发送到某个号码时,该邮件会添加到messages
下,Firebase会返回一个唯一ID,然后我将其用作numbers/:number/messages
下的密钥。
这是我目前用于阅读数据的内容:
var ref = new Firebase('https://FIREBASE-APP.firebaseio.com/');
function fetchMessages(number) {
var numberMessagesRef = ref.child('numbers/' + number + '/messages');
numberMessagesRef.on('child_added', function(snap) {
ref.child('messages/' + snap.key()).once('value', function(message) {
displayMessage(message.val()); // Prepends an <li> in the DOM
});
});
}
$('#number').focusout(function() {
var number = $(this).val();
fetchMessages(number);
});
问题