私は、ユーザーがGoogle FireBase DBにデータを送信するためのフォームを持っています。フォームに情報を記入した人物の一覧とその出現者の一覧を示す別のページがあります。キーベースで返されたfirebase返されたオブジェクト
私は、特定のキー値を持つオブジェクトを1つだけに制限しようとしていますが、fireBaseのドキュメントでは、 "equalTo"を使用して結果を制限することができます。
私の問題は、時間の経過とともに複数のサブミッションを提出することで、以下に挙げるオブジェクトキーには「ユーザー」という再発値があります。
以下は、私がFireBaseを返すサンプルオブジェクトです。
"abc1234567891" : {
"user" : "Frank Albert",
"email" : "[email protected]",
"address" : "123 Some where nice",
"socialspend" : 10,000,
"printimpact" : 180,000
},
"abc1238567891" : {
"user" : "James Miller",
"email" : "[email protected]",
"address" : "123 Some where nice",
"socialspend" : 500,
"printimpact" : 24,500
},
"abc1234567891014348" : {
"user" : "Frank Albert",
"email" : "[email protected]",
"address" : "123 Some where nice",
"socialspend" : 10,800,
"printimpact" : 80,000
},
"abc12341267891" : {
"user" : "Jessica Smith",
"email" : "[email protected]",
"address" : "123 Some where nicer",
"socialspend" : 2,560,
"printimpact" : 70,800
}
上記生成するコード以下の通りですが、カスタムコード(クライアント側またはクラウドの機能のいずれかで)なしでそれをする方法があり
var usersList = firebase.ref('campaignSubmission');
usersList.orderByChild('user').limitToLast(5).once('value')
.then(function(snapshot){
var cpSumission = snapshot.val();
keys = Object.keys(cpSumission);
console.log(cpSumission);
for(var i = 0; i < keys.length; i++) {
var k = keys[i];
// Store whats needed for displaying later
var listEmployeeName = cpSumission[k].user;
var listSocialSpend = cpSumission[k].printimpact;
...
}
}
あなたが表示するJSONノードにはプロパティー 'user'がありませんので、 'orderByChild(' user ')'は何もしないようです。あなたが始めた最小限のJSONと、望む結果を表示できますか? –
上記のJSONはfirebaseが返すフォーマットと同じですが、私はそのプロパティが存在することを示すためにJSONを修正しました。 –
ありがとうございます。それは、あなたが注文しているプロパティがJSONに存在するので、役立ちます。しかし、私はあなたが何を達成しようとしているのか、何が問題なのかまだ分かりません。あなたの現在のコードについては何が問題になりませんか? –