ども、saikiです。
みなさんFirebase使ってますか?
私は使ったことなかったんですが調べてみたらめちゃくちゃ便利そうだったので今趣味開発中のアプリで使ってみることにしました。
どうやらFirebaseを使えばサーバーサイドを全く開発しなくて済みそうです。めちゃくちゃすごい。
大体の個人開発アプリがFirebaseだけで済みそうな感じがします。
今回のアプリでは画像の保存、画像に関連した情報の保存、ソーシャルログインがやりたかったのですが本記事では手始めにgoogleでのソーシャルログインをやっていこうと思います。
簡単です。
目次
- 対象読者
- 手順
<li> <a href="#4appbuildgradle">4.app直下のbuild.gradle編集</a><ul> <li> <a href="#comgoogleandroidgmsplay-services-auth">com.google.android.gms:play-services-authのバージョン</a> </li> <li> <a href="#comgooglefirebasefirebase-corecomgooglefirebasefirebase-auth">com.google.firebase:firebase-core,com.google.firebase:firebase-authのバージョン</a> </li> </ul> </li> </ul> </li> <li> <a href="#i-3">まとめ</a> </li>
対象読者#
AndroidとFirebaseでソーシャルログインしたい人
手順#
以下の記事を参考にさせていただいてます。
https://qiita.com/flatfisher/items/7637f583895c048e6fc5
でもなんか地味にうまくいかなかったりした。
1.FireBaseのアカウントとプロジェクトを作る#
プロジェクトを作るところまでは参考記事通りなのですが、デバッグ用の署名証明書のコマンドで早速うまくいきませんでした。
参考記事でもFireBaseの公式でも
keytool -exportcert -list -v \ -alias androiddebugkey -keystore ~/.android/debug.keystore
のコマンドなんですが、なぜか
keytoolエラー: java.lang.Exception: 1つのコマンドのみ許可されます: -exportcertと-listの両方が指定されました。
と怒られます。-exportcertと-listを別々に叩いてやりましょう。
まずはこれ
keytool -exportcert -v \ -alias androiddebugkey -keystore ~/.android/debug.keystore
パスワードは公式の手順に書いてあるのでそれを入れましょう。自分で決めるものではないです。
次にこれ
keytool -list -v \ -alias androiddebugkey -keystore ~/.android/debug.keystore
結果の出力です。
これのSHA1:の右側をコピペすれば良さげです。
2.google-services.jsonをapp直下に入れる#
公式の手順を進めていくとgoogle-services.jsonがもらえるのでapp直下におきます。
git管理していいのかはよくわからない。
私はリモートにあげてるので一旦除外しています。ローカルなら気にしなくていいと思います。
3.project直下のbuild.gradleの編集#
build.gradleに必要な設定を入れていきます。
まずはproject直下のbuild.gradleのclasspathにcom.google.gms:google-servicesを追加します。
buildscript { ext.kotlin_version = '1.2.31' repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.1.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files classpath 'com.google.gms:google-services:4.0.1'//ここを追加!!!! } }
バージョンは多分以下サイトの最新を入れとくのがいいんじゃないかと思います。(結構迷った)
com.google.gms:google-servicesのバージョン#
https://bintray.com/android/android-tools/com.google.gms.google-services/
4.app直下のbuild.gradle編集#
次はapp直下のbuild.gradleを編集します。
dependencies { //色々書いてある //以下三つを追加 implementation 'com.google.android.gms:play-services-auth:15.0.1' implementation 'com.google.firebase:firebase-core:16.0.0' implementation 'com.google.firebase:firebase-auth:16.0.1' } //こいつも追加。一番下に書いてねって公式で言われてるので一番下に書いておくのが安全そう apply plugin: 'com.google.gms.google-services'
三つimplementationと一つのapply pluginを追加します。
古い記事だとimplementationがcompileと書かれていますが最新はimplementationです。warning出ます。
これもそれぞれのバージョンに注意してください。私はこれが間違っていてビルド失敗してました。
以下サイトの最新で問題ないと思います。
com.google.android.gms:play-services-authのバージョン#
https://developers.google.com/android/guides/setup
com.google.firebase:firebase-core,com.google.firebase:firebase-authのバージョン#
https://firebase.google.com/support/release-notes/android
設定は以上です。
これで実装に入れますよ!
まとめ#
ということで、なんかところどころ微妙に古かったりしてちょっと引っかかったけどそれを加味しても絶対使ったほうがいいくらいFirebaseはきっと便利だよという話でした。
次回実装編です。
簡単です。
ではまた。