🦢

FirebaseのAuthにcurlでテストする方法

2023/05/26に公開

はじめに

FirebaseのAuthenticationを使用したく、プロジェクトを立ち上げてcurlでテストしようと思ったら沼沼の沼だったので残しておきます。

やること一覧

1.FireBaseのプロジェクト作成
2.curlテスト

1.Firebaseのプロジェクト作成

https://firebase.google.com/?hl=ja
まずはFireBaseの公式ページに飛んで「使ってみる」で始めましょう!

1-1.FireBaseのプロジェクト作成

1.「プロジェクトを追加」からプロジェクト名を入力して「続行」をクリック。
2.「このプロジェクトで Google アナリティクスを有効にする」のチェックはどちらでも大丈夫です。僕はよく分からないのでチェックを外してます。チェックを外せば後は「プロジェクトを作成」をクリックでプロジェクトが作成されます。
下記のページが表示されれば完成です。

1-2.Authenticationの有効化

1.この状態だと「ウェブAPIキー」がまだ発行されていないので、Authenticationのサービスを有効化していきます。左タブの「構築」を展開すると「Authentication」が表示されるのでクリック。

2.「始める」をクリックすると「ログイン方法を追加」とあるので、今回は「メール/パスワード」を有効化して進めていきます。

1-3.ウェブAPIキーの取得

Authenticationを有効化すると「ウェブAPIキー」が取得できるので、左上のオプション(歯車)から「プロジェクトの設定」をクリック。

このwebAPIキーはcurlから通信するときに使用します。

2.curlテスト

windowsのcurlコマンドはMacやLinuxとは違うので公式のドキュメントのまま入力してもエラーが返ってきます。
試しに公式のドキュメント通りに自分の作成したプロジェクト(API)に対してユーザー作成リクエストを投げてみましょう。
https://firebase.google.com/docs/reference/rest/auth?hl=ja

公式の書き方だとこんな感じです。

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"email":"[user@example.com]","password":"[PASSWORD]","returnSecureToken":true}'

以下を修正して叩いてみましょう。

  • [API_KEY]:作成したプロジェクトのAPIキー
  • [user@example.com]:メールアドレス
  • [PASSWORD]:パスワード
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=
AIzaSyBGcF7KldAqgRzQ9mO9TQp6KoA5zyPS65U' \
-H 'Content-Type: application/json' \
--data-binary '{"email":"test@example.com","password":"testpass","returnSecureToken":true}'


エラー祭りですね。URLで怒られてます。基本的にwindowsのcurlはシングルクォーテーション('')だと怒られてしまうので、文字列を入力するときはダブルクォーテーション("")で括ってあげてください。(本当なのかは分かりませんが笑)

それではダブルクォーテーションに変更してリクエスト!

curl "https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=
AIzaSyBGcF7KldAqgRzQ9mO9TQp6KoA5zyPS65U" \
-H "Content-Type: application/json" \
--data-binary "{"email":"test@example.com","password":"testpass","returnSecureToken":true}"

もう訳がワカメ...。

そうなのです。訳がワカメなのです。意味不明すぎてやる気が起きないです。
なので色々調べて成功したリクエストがこちらになります。

curl -X POST -H "Content-Type: application/json" --data-binary "@signUp.json" "https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=AIzaSyBGcF7KldAqgRzQ9mO9TQp6KoA5zyPS65U" -v


success! sheeeeeeesh!!!
見づらいですが以下の情報が返ってきてます。

{
  "idToken": "[ID_TOKEN]",
  "email": "[user@example.com]",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "localId": "tRcfmLH7..."
}

「\」で改行するのもエラーが起きたので、一文で毎回リクエストを投げています笑
"@signUp.json"はjsonファイルを作成して投げてます。直接べた書きで入力するとエラーで怒られ続けて沼りました。中身はこんな感じです。

signUp.json
{
  "email":"test@example.com",
  "password":"testpass",
  "returnSecureToken":true
}

上記の書き方をベースにsignInを試したり、パスワード変更のリクエストを投げたりして試してみてください。

あとがき

前回勉強した時はAuthの部分が本当に難しくてアプリ作成を断念しました。
なので今回先に進めて本当に嬉しいです!firebase_authを現在作成中のアプリに組み込んで、バックエンドでログイン機能を追加できるように頑張ります💪

Discussion