2017-11-01 1 views
2

私は生成された識別子を持つドキュメントのコレクションを持っています。質問は、すべての文書データを照会せずに識別子のリストを得ることですか?これらのキーを別のコレクションに格納する方が良いでしょうか?Firestoreで鍵のリストを取得するには?

答えて

3

答えは、使用しようとしているAPIによって異なります。

モバイル/ウェブSDKこれらのクライアントdo not support projections of any kindからあなたが求めていることをする方法はありません。あなたは、この場合、すなわち

db.collection('foo').select() 

を空の投影を行うことができますサーバーのSDKについては

サーバーはあなたに一致する文書を送付しますが、クエリ結果からすべてのフィールドを省略します。

のREST APIについて次のようなので、'__name__'のフィールドマスクを含んrunQueryと同等の操作を行うことができます。

curl -vsH 'Content-Type: application/json' \ 
    --data '{ 
    "parent": "projects/my-project/databases/(default)", 
    "structuredQuery":{ 
     "from": [{"collectionId": "my-collection"}], 
     "select": { 
     "fields": [{"fieldPath":"__name__"}] 
     } 
    } 
    }' \ 
    'https://firestore.googleapis.com/v1beta1/projects/my-project/databases/(default)/documents:runQuery' 

代替my-projectmy-collection適宜。 "from""collectionId"は、最も右の名前のコンポーネントに過ぎないことに注意してください。サブコレクション内にキーが必要な場合、REST APIは親ドキュメント名を"parent"フィールドに入れます。

+0

これは私が必要なものです。ありがとうございます! – elliepooh

+0

選択する前にキーを注文する方法はありますか?私はdb.collection(...)。orderBy(...)。select()。get()を試みましたが、動作していないようです。どんな助けでも大歓迎です! – elliepooh

+0

これは、あなたが試したこと、得た結果、期待した結果で新しい質問としてよく尋ねられます。それは、あなたが注文したいフィールドが選択したフィールドにも含まれている限り、動作するはずです。 –

関連する問題