FlutterでFirebaseをいじったときに詰まったこと一覧
Flutterとは
同じソースコードでiOSもAndroidも対応したアプリが作れるやつ。
Google製でFirebaseとの連携を推している。
連携を題材にした多くのチュートリアルがweb上にあり、初心者でも入りやすい環境が整っている。
僕が触ってみた連携のチュートリアルは下の2つ
ところどころ詰まったところがあったのでまとめる。
あくまで備忘録なので書きなぐりになっているがあしからず。。。
- codelabs
Firebase Authを利用するとAndroidのビルドが通らない
どんなエラーメッセージが出たかメモし忘れてしまったが症状は小見出し通り。
解決法
下のstackoverflowを参考にプラグインのバージョンを上げることで解決した。
codelabのチュートリアルで指定されたプラグインのバージョンが古く、そのままではビルドが通らない。注意。
The email address is badly formatted.
FirebaseAuthにEmailを投げたところフォーマットが合ってないよと怒られた。
Youtubeのコードそのまま書いたがだめだった。
解決法
Emailを変数に格納する際にtrimメソッドを使ってやる
trimは文字列クラスが持つメソッドで文字列の先頭、末尾の空白を消す。
(旧) _email = input
(新) _email = input.trim()
AuthResultとFirebaseUserについて
AuthReseltであるべきところをFirebaseUserを指定しているために型が合わないと言われる。
FirebaseUser user = await FirebaseAuth.instance .signInWithEmailAndPassword(email: _email, password: _password);
解決法
このように書き換える
FirebaseUser user = (await FirebaseAuth.instance .signInWithEmailAndPassword(email: _email, password: _password)).user;
firebase_authとcloud_firestoreを同時併用した際に怒られた
こんな感じで怒られた。
com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives flutter
解決法 android/app/build.gradleにあるminSdkVersion を21に設定する。
FlutterでFirestoreのfirebase_authプラグイン使用時に遭遇したエラーの解決方法
Android でビルドしたときにError: ADB exited with exit code 1 Performing Streamed Installと怒られた
題の通り
解決方法
Android Studio -> AVDManager -> Actionsにある▼ -> wipe data
Intelli jでandroidのエミュレータが突然起動できなくなってしまった。
Intellijのエディタ画面右上からエミュレータを起動しようとしたらiOSのエミュレータしか表示されなくなってしまった。
解決方法 Android Studio -> AVDManager -> 起動したいエミュの▶を押す
firebaseAuthでサインアップしようとしたらAn internal error has occurred. [ 7: ]と怒られる
題の通り
解決方法 エミュレータの再起動で解決した。
PlatformException(Error performing setData, PERMISSION_DENIED: Missing or insufficient permissions., null)と怒られた
解決方法 下にあるとおりにcloudstoreのルールをいじる