🔥

curlを使用したFirestoreのデータ取得方法

2023/11/28に公開

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