2017-05-04 7 views
0

マイfirebase DB構造が&ユーザー・キーのプッシュでfirebaseによって生成されfirebase dbサブオブジェクト要素にアクセスするには?

users 
fb-user-key1 
    user1-details1 
    Tags 
     Tag-key1  
      "name":"value" 
     Tag-key2 
      "name":"value" 

fb-user-key2 
    user1-details2 
    Tags 
     Tag-key1  
      "name":"value" 

タグ・キー1、以下のとおりです()。コンテンツにアクセスするためのfirebaseコードは、

var fbref = firebase.database().ref("users"); 
fbref.child("Tags").on("child_added", function(e){ 
    var Tagobj = e.val().name; 
    console.log(Tagobj); 
}); 

これは何も返されません。私は上記のデータ構造でname:valueのペアにアクセスすることができません。 `変更されたコードを追加して、上記のコードの

firebase.database().ref("users").on("child_added",function(e‌​) { var Tagobj = e.val().Tags; }); 

出力は、その名前と値のペアにアクセスする方法output data structure

あります? firebaseの鍵は問題ですか? 私は間違っています。あなたの入力を感謝します。

+0

あなたのユースケースは何ですか?ユーザーが作成された後に、これまでに更新されたユーザー用の「タグ」ですか?新しい値を追加して再レンダリングをトリガできるストアがアプリケーションにありますか? – ArneHugo

+1

'タグ'は 'users'の子ではありません。 –

+0

@ArneHugo、yesタグは新しい名前の値のペアで頻繁に更新されます。 – user1322692

答えて

0

Tagsは各ユーザーの子プロパティであるため、各ユーザーオブジェクトから子のプロパティを読み取る必要があります。

すべてのユーザーに対してすべてのTagsをしたい場合は、ユーザーが作成された後、ユーザーごとにTagsを仮定すると、更新されていない、あなたがこれを行うことができます:

tagsPerUserId = {}; 

firebase.datatabs().ref('users').on('child_added', function(snap) { 
    tagsPerUserId[snap.key] = snap.value().Tags; 
    // TODO: Notify view that tagerPerUserId is updated and needs to be re-rendered 
    console.log(`Tags for userId ${snap.key}: ${snap.value().Tags}`); 
}); 

あなたはまた、新規ユーザーのTagsときを取得します。この方法それらは作成されますが、既存のユーザーのTagsへの更新はありません。

+0

質問に新しいコードと出力形式を追加しました。 – user1322692

+0

をチェックしてください[example result](https://i.stack.imgur.com/zEXJx.png)の例では、私が期待しているようにユーザーのタグを取得しているようです。私は問題を理解しているかどうか分からない。 'Tag'の中から各ユーザの名前を取得しようとしていますか? – ArneHugo

+0

はい私はタグの下で各ユーザの名前を取得するつもりです – user1322692

関連する問題