2017-12-14 8 views
0

これは私のデータベース構造である: Database snap次の場合に適したクエリは何ですか?

私は「ロケール」に等しい「カイロ、エジプト」を持つすべてのユーザーをリストしようとしていますので、私は次のクエリを作った:

exports.calculateMatches = functions.https.onRequest((request, response) => { 

// Accessユーザー :この機能はfirebaseクラウド機能に展開されており、これは私がログに得るものです要求しているユーザー

databaseRef.child("users").orderByChild("locale").equalTo(request.query.locale).once("value") 
    .then(snap => { 
     snap.forEach(profile => { 
     console.log(profile); 
     }); 
    }); 
}); 

ノートのロケールに位置しているのプロファイル

+1

、それはテキストをコピーし、それがより簡単に検索できるように質問に直接それを置くために、より便利です。 –

答えて

1

HTTPSタイプの機能では、機能を終了するためにクライアントにsend a responseが必要です。それがなければ、彼らはいつもタイムアウトし、クライアントはずっと待っています。例えば

:代わりに、エラーのスクリーンショットを含めての

const databaseRef = admin.database().ref('') 
exports.calculateMatches = functions.https.onRequest((request, response) => { 
    databaseRef.child("users").orderByChild("locale").equalTo(request.query.locale).once("value") 
    .then(snap => { 
     const profiles = [] 
     snap.forEach(profile => { 
      profiles.push(profile.val()) 
     }); 
     response.send(profiles) 
    }) 
    .catch(error => { 
     response.status(500).send(error) 
    }); 
}); 
+0

これでJSONデータの適切なビューが得られましたが、何も得られません。私はそれをちょうど注文に保つことを試みた。等しいチャットなしのチャイルド部分。何もなかった...質問に間違った何か? –

+1

/usersには "locale"という名前の子がありません。そこには、さらに2つのレベルの子供がいます。実行するクエリの種類に合わせてデータを再構成する必要があります。 https://stackoverflow.com/questions/35446695/firebase-deep-query-orderbychild-with-equalto –

関連する問題