2016-05-03 13 views
0

フラットなリレーショナルデータ構造(Firefeedのものに似ています)を使用してコンテンツを表示したいとします。実際のコンテンツをどのように表示するかを知ることができないという点を除いて、すべてがうまくいくはずです。私はしばらくの間苦労しているし、私は実際にはほとんどそこにいると思うが、何かがまだ欠けている。 JSONは次のようになりますAngularJSを使用してFirebaseにリレーショナルデータを表示

var userFeedRef = new Firebase(FIREBASE_URL).child("users").child($rootScope.currentUser.$id).child("feed"); 
var uploadsRef = new Firebase(FIREBASE_URL).child("uploads"); 

は、私は2つの参照を持っている

{ 
    "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" 
    } 
    } 
} 

問題がある:唯一のIDがある場合、私は、アップロードの実際のコンテンツを表示することができますどのように参照?ユーザーのID(userFeedRef)への参照と、すべてのアップロード(uploadsRef)ではなく、特定のIDの実際の内容への参照が必要です。

このユーザーをHTMLで表示するにはどうすればよいですか?だから、例えば:User1の{{feed.reasonUpload}}リピートngのことを示すためにあります。 テスト 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. 
)); 
}); 
+0

http://stackoverflow.com/questions/30299972/joining-data-between-paths-based-on-id-using-angularfireを参照してください。 –

+0

@FrankvanPuffelen私は以前にこの投稿を見てきました。もう一度やりますが、NormalizedCollectionをお勧めしますか?私はそれがまだベータ版であり、実際のアプリatmには使用すべきではないことがわかりました。工場よりも簡単にすべきだと思います。それはフラットにするのではなく、アップロード全体をすべてのフォロワーに送信したときに機能しましたが、それは重複データに関する良い解決策ではないと思います。そのような痛みはお尻にある – Zizazorro

+0

その答えには2つのアプローチがあり、そのうちの1つはAngularFire '$ firebaseArray()'を拡張します。それはあなたがしようとしているものに最も近いものです。 –

答えて

0

あなたはこのような何かを行うことができます。このplunkerがお手伝いします

$scope.finalData = (Object).values($scope.firebaseData.uploads); 
//$scope.firebaseData is data what you retrieving from firebase. 

希望。

関連する問題