2017-01-30 40 views
0

すべての回答を試しました。私は多くのJavascriptを知らないです。Firebase - キー名のない子供の子供を取得

私は子供の子供にアクセスしたいです。 名前およびメール

var rootRef = firebase.database().ref().child("users"); 

rootRef.on("child_added", snap =>{ 

    var name = snap.child("name").val(); 
    var email = snap.child("email").val(); 

    console.log(name, email); 

}); 

そして私はプリントアウトします:しかし、彼らは 名>ユニークID>名前&住所の下にある

私がしようとしているコードがある

null null 

enter image description here

私は1つのレベルの短いと思うが、私は構造のより深くに行く方法を知らない。

ありがとうございます!

+0

なぜユーザーの名前をキーとして使用していますか?あなたの鍵には一意のIDを使用する必要があります。そうすれば、あなたのコードは期待どおりに動作します。 – jpriebe

+0

第三者の開発者が私のために作ったアプリです。私はいくつかのデータを取得するために単純なバックエンドをやっています。それは、私は、クエリを作成する際に固有のIDが知られていないことを推測して、その後 – abarro

+0

すでに生産に使用されているため、だから、本当にデータ構造を変更することはできませんか?トップレベルの名前のみ? – jpriebe

答えて

2

名前がキーであり、そのすぐ下の一意のIDではないという非常に奇妙なことです。つまり、各ユーザーにはあなたの例のような子が1人しかいないと仮定し、一意のIDが何であるかわからない場合は、JSONオブジェクトの小道具を反復してIDを取得し、 so:

firebaseApp.database().ref().child('users').once('child_added').then(function(snap) { 
     console.log('child added'); 

     var json = snap.val(); 
     var key; 
     for (var field in json) { 
      key = field; 
      break; 
     } 

     var name = json[key]["name"]; 
     var email = json[key]["email"]; 

     console.log(name, email); 
    }); 
+1

編集したい場合は、欠落していただけ}};コードの最後に – abarro

関連する問題