Я хочу отображать контент с использованием плоской реляционной структуры данных (аналогично структуре Firefeed). Все работает так, как должно, но я не могу понять, как отображать фактический контент. Я боюсь какое-то время, и я думаю, что я почти на самом деле, но что-то все еще отсутствует.Отображать реляционные данные в Firebase с помощью AngularJS
У меня есть две ссылки:
var userFeedRef = new Firebase(FIREBASE_URL).child("users").child($rootScope.currentUser.$id).child("feed");
var uploadsRef = new Firebase(FIREBASE_URL).child("uploads");
JSON выглядит следующим образом:
{
"uploads" : {
"-KGkxzQj0FM2CMAXo5Em" : {
"author" : "87a8b6c8-7f72-45c2-a8c5-bb93fe9d320d",
"date" : 1462184179564,
"name" : "Zizazorro",
"reasonUpload" : "Test",
"startSec" : 80,
"uploadTitle" : "Kid Ink - Promise (Audio) ft. Fetty Wap"
},
"-KGlCoD7kEa1k3DaAtlG" : {
"author" : "87a8b6c8-7f72-45c2-a8c5-bb93fe9d320d",
"date" : 1462188328130,
"name" : "Zizazorro",
"reasonUpload" : "Test2",
"startSec" : 80,
"uploadTitle" : "Kid Ink - Show Me ft. Chris Brown"
}
},
"users" : {
"87a8b6c8-7f72-45c2-a8c5-bb93fe9d320d" : {
"date" : 1459369248532,
"feed" : {
"-KGkxzQj0FM2CMAXo5Em" : true,
"-KGlCoD7kEa1k3DaAtlG" : true
},
"firstname" : "Bob",
"followers" : {
"e3de536b-03a1-4fb4-b637-ebcebaae55c6" : true
},
"following" : {
"e3de536b-03a1-4fb4-b637-ebcebaae55c6" : true
},
"regUser" : "87a8b6c8-7f72-45c2-a8c5-bb93fe9d320d",
"uploads" : {
"-KGkxzQj0FM2CMAXo5Em" : true,
"-KGlCoD7kEa1k3DaAtlG" : true
},
"username" : "Zizazorro"
},
"e3de536b-03a1-4fb4-b637-ebcebaae55c6" : {
"date" : 1459369285026,
"feed" : {
"-KGkxzQj0FM2CMAXo5Em" : true,
"-KGlCoD7kEa1k3DaAtlG" : true
},
"firstname" : "Anna",
"followers" : {
"87a8b6c8-7f72-45c2-a8c5-bb93fe9d320d" : true
},
"following" : {
"87a8b6c8-7f72-45c2-a8c5-bb93fe9d320d" : true
},
"regUser" : "e3de536b-03a1-4fb4-b637-ebcebaae55c6",
"username" : "Sven8k"
}
}
}
Проблема: Как я могу отобразить текущее содержимое загрузки, когда есть только идентификатор Справка? Мне нужна ссылка на идентификаторы для пользователя (userFeedRef) и ссылка на фактический контент этих конкретных идентификаторов, а не на все закачки (uploadsRef).
Как я могу показать этого пользователя ng-repeat в моем html? Так, например: нг-повтор {{}} feed.reasonUpload для user1 должен показать: Тест Test2
EDIT Я смотрел на этот пример, но я не могу понять, как оказать содержание по фактической подаче HTML в моем случае
var commentsRef =
new Firebase("https://awesome.firebaseio-demo.com/comments");
var linkRef =
new Firebase("https://awesome.firebaseio-demo.com/links");
var linkCommentsRef = linkRef.child(LINK_ID).child("comments");
linkCommentsRef.on("child_added", function(snap) {
commentsRef.child(snap.key()).once("value", function() {
// Render the comment on the link page.
));
});
См. Http://stackoverflow.com/questions/30299972/joining-data-between-paths-based-on-id-using-angularfire –
@FrankvanPuffelen Я видел это сообщение раньше, и я пробовал все это снова, но вы рекомендуете NormalizedCollection? Я видел, что он все еще в бета-версии и не должен использоваться для реальных приложений atm. Я думаю, что это должно быть проще, чем фабрика. Он работал, когда вместо того, чтобы сделать его плоским, я отправил всю загрузку всем последователям, но я не думаю, что это хорошее решение для дублирования данных. Такая боль в заднице haha – Zizazorro
Этот ответ имеет два подхода, один из которых расширяет AngleFire '$ firebaseArray()'. Это ближе всего к тому, что вы пытаетесь. –