2017-10-20 12 views
0

Firebase機能と同様に、私のサーバからFirebaseを照会します。パスに変数を持つfirebaseを使用してください

  • 何か
    • キー1
      • SUBKEY1
          :のようなデータについて

          const db = firebase.database(); 
          const ref = db.ref('something/{some_id}'); 
          ref.on('child_added', snap => { 
          // Do something 
          }, console.error) 
          

          は、私はこのような何かをしたいですの

        • データ1
      • subkey2
        • データ2
    • KEY2
      • subkey3
        • データ3

そして私はSUBKEY1、subkey2、subkey3ためchild_addedイベントを取得したいです。

私はkey1とkey2の値が分からず、そのサブキーを知っていますか?プッシュ()によって自動的に作成されます

これは可能ですか?私は私自身のバックエンドで同じことをしたいと思う

functions.database.ref('/something/{some_id}/{subkey}').onWrite(....) 

クラウド機能では、私のような何かを行うことができます。

答えて

1

データベースリスナーにはワイルドカードがありません。データベースリスナーは、クラウドファンクションのトリガーとはまったく異なります。

データベースリスナーは、追加されたパスのスコープに常に制限されます。特定の場所(ワイルドカードなし)で発生するイベントを受信する唯一の方法は、値イベントリスナーを使用して、その場所で行われたすべての変更に応答することです。そして、それは、それぞれのイベントで正確に何が変化しているのか把握することは難しいでしょう。

+0

だからあなたは、変更された/追加された新しい子のリストを持つコレクションをデータベースに組み込み、その問題を解決する良い方法だと思います。 –

+0

追加された子ノードごとに何かしたい場合は、実際にクラウドファンクションが最適なソリューションです。それ以外の場合は、クライアントが関心のあるキーのセットを制約する方法があるかどうかを判断し、それだけを聞きます。 –

+1

私は機能を使いたいと思っていますが、リスナーは私の顧客のネットワークの中にいなければなりません。それで私は機能を使うことができませんでした。 –

関連する問題