Как работать с (=true) ссылками в Firebase

Я создаю приложение AngularFire и борюсь со структурой своей базы данных. Приложение работает с пользователями, загрузками и комментариями, очень похоже на пример Firefeed, но отличается. Я пытаюсь сделать свою базу данных как можно более плоской, поэтому я хочу сохранить загрузки отдельно от пользователей (если комментарий к загрузке опубликован, он должен обновляться на временной шкале каждого пользователя).

На данный момент, если выгрузка опубликована, она переходит в ветку "загрузки", кроме "пользователей". Каждый пользователь получит идентификатор этой загрузки как: uploadUid=true в своем фиде, поэтому данные не дублируются.

Проблема в том, как я могу получить данные от загрузки для пользователей, которые нуждаются в этой загрузке в своем фиде, просто сославшись на true? Так, например, как я могу перебрать ленту пользователя 1, потому что у меня есть только "-KGkxzQj0FM2CMAXo5Em": true", где мне нужна информация из этой загрузки, которая находится в ветке" uploads ".

РЕДАКТИРОВАТЬ:

{
  "uploads" : {
    "-KGkxzQj0FM2CMAXo5Em" : {
      "author" : "87a8b6c8-7f72-45c2-a8c5-bb93fe9d320d",
      "date" : 1462184179564,
      "name" : "Zorro",
      "reasonUpload" : "Test",
      "uploadTitle" : "Title 1",
    }
  },
  "users" : {
    "87a8b6c8-7f72-45c2-a8c5-bb93fe9d320d" : {
      "date" : 1459369248532,
      "feed" : {
        "-KGkxzQj0FM2CMAXo5Em" : true
      },
      "followers" : {
        "e3de536b-03a1-4fb4-b637-ebcebaae55c6" : true
      },
      "following" : {
        "e3de536b-03a1-4fb4-b637-ebcebaae55c6" : true
      },
      "regUser" : "87a8b6c8-7f72-45c2-a8c5-bb93fe9d320d",
      "uploads" : {
        "-KGkxzQj0FM2CMAXo5Em" : true
      },
      "name": "Zorro"
   },
    "e3de536b-03a1-4fb4-b637-ebcebaae55c6" : {
      "date" : 1459369285026,
      "feed" : {
        "-KGkxzQj0FM2CMAXo5Em" : true
      },
      "followers" : {
        "87a8b6c8-7f72-45c2-a8c5-bb93fe9d320d" : true
      },
      "following" : {
        "87a8b6c8-7f72-45c2-a8c5-bb93fe9d320d" : true
      },
      "regUser" : "e3de536b-03a1-4fb4-b637-ebcebaae55c6"
    }
  }
}

И структура того, как получить пост для каждого фида фолловеров (это то, что использует Firefeed):

self._mainUser.child("followers").once("value", function(followerList) {
    followerList.forEach(function(follower) {
      if (!follower.val()) {
        return;
      }
      var childRef = self._firebase.child("users").child(follower.name());
      childRef.child("feed").child(uploadRefId).set(true);
    });
  });

РЕДАКТИРОВАТЬ 2

И это то, что я сейчас использую, чтобы получить конкретные загрузочные идентификаторы в ленте каждого подписчика (в моем контроллере):

firebaseAuth.$onAuth(function (authUser) {
    if (authUser) {
var currentUser1 = new Firebase(FIREBASE_URL).child("users").child($rootScope.currentUser.$id);
var firebase = new Firebase(FIREBASE_URL);

currentUser1.child("feed").once("value", function(list) {
                list.forEach(function(follower) {
                    var childRef = firebase.child("uploads").child(follower.key());
//                  childRef.child("feed").push(upload);
                    var childRefArray = $firebaseArray(childRef);
                    $rootScope.feedd = childRefArray;
                });
            });
    } // if(authUser)

}); // auth.$onAuth 

РЕДАКТИРОВАТЬ 3

И в моем HTML:

<div class="feed-total" ng-repeat="feed in feedd  | orderBy: '-date'">
<div>
    {{feed.reasonUpload}} // this should be "Test"
</div>

0 ответов

Другие вопросы по тегам