前提
- gcloud が実行できる前提
- APIコールで取得する
何度も使うんだったら python とかで書いたが方がいいとは思うけど。。
実行
コレクションの件数取得( API リクエスト )
PROJECT_ID=xxxxx
COLLECTION_ID=test_collection
curl -s \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST \
"https://firestore.googleapis.com/v1/projects/${PROJECT_ID}/databases/(default)/documents:runAggregationQuery" \
-d "{
\"structuredAggregationQuery\": {
\"structuredQuery\": {
\"from\": [
{ \"collectionId\": \"${COLLECTION_ID}\" }
]
},
\"aggregations\": [
{
\"count\": {},
\"alias\": \"total\"
}
]
}
}" | jq -r '.[0].result.aggregateFields.total.integerValue'
ワンライナー版
PROJECT_ID=xxxx
COLLECTION_ID=test_collection
echo && echo $PROJECT_ID $COLLECTION_ID && date && curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -X POST "https://firestore.googleapis.com/v1/projects/${PROJECT_ID}/databases/(default)/documents:runAggregationQuery" -d "{\"structuredAggregationQuery\":{\"structuredQuery\":{\"from\":[{\"collectionId\":\"${COLLECTION_ID}\"}]},\"aggregations\":[{\"count\":{},\"alias\":\"total\"}]}}" | jq -r '.[0].result.aggregateFields.total.integerValue' && echo