FirebaseのAuthにcurlでテストする方法
はじめに
FirebaseのAuthenticationを使用したく、プロジェクトを立ち上げてcurlでテストしようと思ったら沼沼の沼だったので残しておきます。
やること一覧
1.FireBaseのプロジェクト作成
2.curlテスト
1.Firebaseのプロジェクト作成
まずは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)に対してユーザー作成リクエストを投げてみましょう。
公式の書き方だとこんな感じです。
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ファイルを作成して投げてます。直接べた書きで入力するとエラーで怒られ続けて沼りました。中身はこんな感じです。
{
"email":"test@example.com",
"password":"testpass",
"returnSecureToken":true
}
上記の書き方をベースにsignInを試したり、パスワード変更のリクエストを投げたりして試してみてください。
あとがき
前回勉強した時はAuthの部分が本当に難しくてアプリ作成を断念しました。
なので今回先に進めて本当に嬉しいです!firebase_authを現在作成中のアプリに組み込んで、バックエンドでログイン機能を追加できるように頑張ります💪
Discussion