[解決済み] Firebaseで複数のキーでクエリを実行する
2022-02-26 13:52:53
質問
Firebase データベースに既知のキーのリストがあります。
-Ke1uhoT3gpHR_VsehIv
-Ke8qAECkZC9ygGW3dEJ
-Ke8qMU7OEfUnuXSlhhl
これらのキーをループしてそれぞれのオブジェクトのスナップショットを取得するのではなく、1つの統一されたリクエストでこれらのキーのそれぞれを照会するにはどうしたらよいでしょうか。Firebaseはこれを提供していますか?
を発見しました。
Promise.all()
しかし、firebase のデータを取得する標準的な方法を用いて、どのように実装すればよいのかわかりません。
var userId = firebase.auth().currentUser.uid;
return firebase.database().ref('/users/' + userId).once('value').then(function(snapshot) {
var username = snapshot.val().username;
});
ご協力ありがとうございました。
解決方法は?
Davidのコメントにあるように、アイテムが何らかの形で関連している場合、それらをすべて取得するクエリを作成することができるかもしれません。
そうでなければ、これで十分です。
var keys = [
"-Ke1uhoT3gpHR_VsehIv",
"-Ke8qAECkZC9ygGW3dEJ",
"-Ke8qMU7OEfUnuXSlhhl"
];
var promises = keys.map(function(key) {
return firebase.database().ref("/items/").child(key).once("value");
});
Promise.all(promises).then(function(snapshots) {
snapshots.forEach(function(snapshot) {
console.log(snapshot.key+": "+snapshot.val());
});
});
各項目を個別のリクエストで取得しても、リクエストはすべて1つのコネクションで送信されるので、思ったほど遅くはないことに注意してください。それについての詳しい説明は SNSアプリの投稿取得を高速化するために、1つのイベントを繰り返し観測するのではなく、クエリを使用する。 .
関連
-
[解決済み】webpack-dev-serverにリモート接続すると、「Invalid Host header」というメッセージが表示されます。
-
[解決済み】JavaScriptのgetElementByNameが機能しない
-
[解決済み】React.jsの配列の子要素のユニークキーを理解する
-
[解決済み】FirefoxでGoogle Maps V3をリモートで使用すると「googleが定義されていません」と表示される。
-
[解決済み] JavaScriptでオブジェクトのキー/プロパティの数を効率的にカウントする方法
-
[解決済み] JavaScriptで複数の値を返す?
-
[解決済み] JavaScriptで複数ケースを扱うSwitch文
-
[解決済み] FirebaseのapiKeyを公開しても大丈夫ですか?
-
[解決済み] Cloud FirestoreとFirebase Realtime Databaseの違いとは?
-
[解決済み】Firebaseで複数のwhere句に基づくクエリ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】パッシブイベントリスナー内部でpreventDefaultができない
-
[解決済み】 Uncaught TypeError: data.push is not a function
-
[解決済み】フォームコントロールの値アクセサがない
-
[解決済み】XMLHttpRequestモジュールが定義されていない/見つからない
-
[解決済み】JavaScriptのgetElementByNameが機能しない
-
[解決済み】Uncaught SyntaxError: JSON の位置 0 に予期しないトークン u があります。
-
[解決済み】Vueのテンプレートまたはレンダー関数が定義されていない 私はどちらも使っていないのですが?
-
[解決済み】TypeError: res.status は関数ではありません。
-
[解決済み】 \u003C とは何ですか?
-
[解決済み】Vueが定義されていない