🔥
curlを使用したFirestoreのデータ取得方法
FireStoreのコレクションやドキュメントをcurlを叩いて取得したい時があったのでその方法をメモ
RestAPIを使用してFireStoreにアクセスする。
ユーザーの作成
まずはFireStoreのコンソールからアクセスするユーザーを作成する
プロダクトのカテゴリからAuthenticationをクリックし
Usersタブのユーザーを追加から、適当なメールアドレスとパスワードを設定し、ユーザーを作成する
APIKeyの取得
プロジェクトの概要から、プロジェクトの設定にアクセスし、
ウェブAPI キーの右側に羅列されている文字列をコピーしておく
(この時にprojectidも控えておく)
idTokenの取得
先ほど作成取得した、
- ユーザーメールアドレス
- パスワード
- ウェブAPIキー
を使用して、idTokenをcurlを使用して取得する
$ curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key={APIkey}' -H 'Content-Type: application/json' --data-binary '{"email":"{email}","password":"{PassWord}","returnSecureToken":true}'
{
"kind": "identitytoolkit#VerifyPasswordResponse",
"localId": "XXXXXXXXXX",
"email": "XXXXX@XXXXX",
"displayName": "",
"idToken": "XXXXXXXXXXX",
"registered": true,
"refreshToken": "XXXXXXXX",
"expiresIn": "XXXXX"
}
以上のようにidTokenが発行されるので、それをコピーする
フィールドの取得
先ほど取得した以下の二つを使用してフィールド等をJson形式で取得する
- projectID
- idToken
$ curl 'https://firestore.googleapis.com/v1/projects/{projectID}/databases/(default)/documents/{collectionName}/{documeID}/' -H "Authorization: Bearer {idToken}"
すると結果をjson形式で取得することができる
IDトークンの有効期限は1時間なので、期限が切れてしまった場合は再度取得が必要
参考
Cloud Firestore REST API を使う - Qiita
Firebase Authenticationのユーザー認証用のIDトークンをコマンド一発で取ってくる方法 - Qiita
Discussion