ボブサップになりたい人のブログ

ボブサップにはなりたいけれど、エンジニアにもなりたいのでそのあたりのことを書きます

FlutterでFirebaseをいじったときに詰まったこと一覧

Flutterとは

同じソースコードiOSAndroidも対応したアプリが作れるやつ。

Google製でFirebaseとの連携を推している。

連携を題材にした多くのチュートリアルがweb上にあり、初心者でも入りやすい環境が整っている。

僕が触ってみた連携のチュートリアルは下の2つ

ところどころ詰まったところがあったのでまとめる。

あくまで備忘録なので書きなぐりになっているがあしからず。。。

  • codelabs

Firebase for Flutter

www.youtube.com

Firebase Authを利用するとAndroidのビルドが通らない

どんなエラーメッセージが出たかメモし忘れてしまったが症状は小見出し通り。

Youtubeチュートリアル中に遭遇した。

解決法

下のstackoverflowを参考にプラグインのバージョンを上げることで解決した。

codelabのチュートリアルで指定されたプラグインのバージョンが古く、そのままではビルドが通らない。注意。

android - registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection) - Stack Overflow

The email address is badly formatted.

こちらもYoutubeチュートリアル中に遭遇。

FirebaseAuthにEmailを投げたところフォーマットが合ってないよと怒られた。

Youtubeのコードそのまま書いたがだめだった。

解決法

Emailを変数に格納する際にtrimメソッドを使ってやる

trimは文字列クラスが持つメソッドで文字列の先頭、末尾の空白を消す。

(旧) _email = input

(新) _email = input.trim()

AuthResultとFirebaseUserについて

Youtubeチュートリアルで遭遇。

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のルールをいじる

qiita.com