Firestoreは、製品を返品する前に製品の詳細を待つことを約束します

oDarkThirty

私はこのような同様の質問が1000回聞かれたことを知っていますが、私の一生の間、私は非常に単純だと感じる何かに苦労しています。

2つのテーブルがあります。1つはorder_linesと呼ばれ、もう1つはorder_lines_metaと呼ばれます。最初にorder_linesをクエリし、各行についてorder_lines_metaを取得してそれを返す必要があります。

私は多くのバリエーションを試しましたが、ここで立ち往生しています。nodejsがorder_linesを出力した後にデータが来るため、order_lines_metaが戻るのを待つ必要があります。そうしないと、空白のmetaDataが取得されます。

最後に、注文情報、オブジェクトのラインアイテム、およびラインアイテム内のメタデータオブジェクトを含むオブジェクト

助けに感謝します、私はこれで私の脳を包むことができないようです、そして私は確かにこれを行う他の方法にもオープンです

nodejs、express、typescript、firestoreを使用する

const orderNumber = req.query.orderNumber as string;
const customerName = req.query.customerName as string;
const orderDate = req.query.orderDate as string;

const pickListObj = {
      orderNumber: orderNumber,
      customerName: customerName,
      orderDate: orderDate,
      line_items: <any>[],
    };

db.collection('order_lines').where('number', '==', orderNumber).get().then((snap) => {
      const promises = <any>[];

      snap.forEach(async (order: any) => {
      // get meta data
        const metaDataObj = <any>[];
        const productName = order.data().name;
        const productQty = order.data().quantity;

        promises.push(db.collection('worder_line_meta').where('lineId', '==', order.data().lineId).get().then((doc: any) => {
          if (doc.display_value != '') {
            const meta = [{display_key: doc.data().display_key, display_value: doc.data().display_value}];
            metaDataObj.push(meta);
          }
        }));
      });
      return Promise.all(promises);
    }).then(() => {
      pickListObj.line_items.push({name: productName, quantity: productQty, meta_data: metaDataObj});
    });
HeikoTheißen

前の内側のpush最後からステートメントを移動します:.then.then

promises.push(db.collection('worder_line_meta')...then((doc: any) => {
  if (doc.display_value != '') {
    ...
  }
  pickListObj.line_items.push({name: productName,
                               quantity: productQty,
                               meta_data: metaDataObj});
}));

最後.thenに、完全なが表示されpickListObjます。

ただし、データベース上で2つのデータベースコレクションを結合し、1回の操作ですべてを取得する方が簡単で高速なのではないかと思いますdb.collection

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

PHPを使用して更新する製品の詳細についてはShopifyApi

角度5-製品にマウスを合わせると、製品の詳細がdivで表示されます。

PHPとMySQLを使用して製品画像をクリックし、製品の詳細を表示します

Magento 2では、最近表示した製品を製品詳細ページに表示します

「テスト製品」と「テスト製品」の両方の名前の製品を検索します

LaravelのorderItemsと製品詳細でユーザーの注文を取得します

製品または製品レベルから材料を返品する方法

Xamarinフォームを使用して製品を選択するときに製品の詳細を表示する方法

woocommerceでその製品の詳細ページに外部製品を設定する方法はバイパスされますか?

Mysql-Codeigniterは製品に関連する製品を取得します

Eigen製品とglm製品は異なる結果を生成します

Eigen製品とglm製品は異なる結果を生成します

WooCommerceカートの検証:特定の製品が常に他の製品の前に追加されることを確認します

WooCommerce3で製品属性の詳細を取得する

wordpresssingle.phpで製品の詳細を表示する方法

SQLは、製品の分類とクライアントが製品を購入することに基づいて新しい列を作成します

Prestashop 1.7は、製品の名前で事前にコンパイルされた連絡先フォームに移動する製品の詳細にリンクを追加します

Magentoですべての注文と製品の詳細を取得するSQL

最も安い製品に3つの製品ごとに50%の割引を追加します(WooCommerce)

Mysql は、2 つのテーブル (製品と製品 - 価格) から最小、平均、最新を取得します。

製品の販売数を製品の詳細テンプレートに追加するにはどうすればよいですか?

製品に製品参照を追加するには?

製品の配列のWooCommerce製品タグを取得します

Magentoで現在の製品のカテゴリ名を(製品の詳細ページで)取得する方法

WooCommerce製品の概要に製品の寸法を表示する

管理サイトの製品詳細のように、ユーザーWebサイトのnopcommerce製品詳細にタブストリップを追加する

辞書の製品を繰り返すことはできませんodoo

SKProductsResponseは無効な製品IDのみを返します

製品リンクの解析はnullを返します

TOP 一覧

  1. 1

    PictureBoxで画像のブレンドを無効にする

  2. 2

    レスポンシブウェブサイトの一番下にスティッキーなナビゲーションバーを作成するのに問題がある

  3. 3

    Rパッケージ「AppliedPredictiveModeling」のインストール中にエラーが発生しました

  4. 4

    Chromeウェブアプリのウェブビューの高さの問題

  5. 5

    HTTPヘッダー 'SOAPAction'の値はサーバーによって認識されませんでした

  6. 6

    Pythonを使用して、リストからデータを読み取り、特定の値をElasticsearchにインデックス付けするにはどうすればよいですか?

  7. 7

    C ++でのcURLとマルチスレッドの使用

  8. 8

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  9. 9

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  10. 10

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  11. 11

    Spring @ModelAttributeモデルフィールドマッピング

  12. 12

    Python / SciPyのピーク検出アルゴリズム

  13. 13

    Ansibleで複数行のシェルスクリプトを実行する方法

  14. 14

    テキストフィールドの値に基づいて UIslider を移動します

  15. 15

    tf.nn_conv2dとtf.nn.depthwise_conv2dの違い

  16. 16

    ZScalerと証明書の問題により、Dockerを使用できません

  17. 17

    MLでのデータ前処理の背後にある直感

  18. 18

    Postmanを使用してファイル付きの(ネストされた)jsonオブジェクトを送信する

  19. 19

    java.lang.NoClassDefFoundError:com / sun / istack / tools / DefaultAuthenticator $ Receiver

  20. 20

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  21. 21

    BLOBストレージからデータを読み取り、Azure関数アプリを使用してデータにアクセスする方法

ホットタグ

アーカイブ