Open3

Flutter + FirebaseでChatアプリの作成

masato_is_a_ snakemasato_is_a_ snake

執筆時間 10分

目的

  • リアルタイムデータ更新にStreamクラスを使うことは知っているが知見不足なので慣れたい
  • Firebase(ログイン、データ保存)の知見を増やしたい

やらないこと

  • あくまで技術力向上を目的としたものなので、商用利用を目的としたリリースやデザインには拘らない。

TODO

  • StreamBuilderを用いて、リアルタイムで画面更新 done
  • riverpodのStreamProviderを用いて、リアルタイム更新 done
  • Firebaseとの接続 now
  • Firebaseを用いてリアルタイムで画面更新ができるか調査
    • Firebaseを使うとStream型でやりとりしていたのをどこかのサンプルコードで見たことがあるので、できるか調べる。
  • Firebaseを用いてログイン機能の実装
    • 恐らくFirebase Authenticationを使うはず

使用リポジトリ

https://github.com/masal9pse/flutter_firebase_chat

Hidden comment
masato_is_a_ snakemasato_is_a_ snake

Firebaseとの接続

  • 目標
    • FirebaseのDBのデータを画面に表示することを確認する。

環境構築

https://zenn.dev/altiveinc/articles/flutter-version-management#flutter-createでfvmを使う(flutter以外のディレクトリでfvmを使用する)

Android側のビルドが通らない

Mac側の現在のAndroid Studioのバージョンは4.2.1
windows側はruntime version 17.0.11と記載されている。


FAILURE: Build failed with an exception.

* Where:
Build file '/Users/yamamotohiroto/dev_workspace/flutter_projects/flutter_firebase_chat/android/app/build.gradle' line: 2

* What went wrong:
An exception occurred applying plugin request [id: 'com.android.application']
> Failed to apply plugin 'com.android.internal.application'.
  > Android Gradle plugin requires Java 17 to run. You are currently using Java 11.
     Your current JDK is located in /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home
     You can try some of the following options:
      - changing the IDE settings.
      - changing the JAVA_HOME environment variable.
      - changing `org.gradle.java.home` in `gradle.properties`.

全く同じエラー文が英語であったので参考にする
https://stackoverflow.com/questions/76362800/android-gradle-plugin-requires-java-17-to-run-you-are-currently-using-java-11

結論

/Applications/Android Studio.app/Contents/jre/jdk/Contents/HomeはAndroid Studio内で持っているjdkのバージョンだったのでAndroid Studio自身のアップデートを行なった。
アップデートは普通にAndroid Studio公式ページからダウンロードした。
Android Studioのアップデートによりjdkのバージョンも23に更新され、ビルドが成功した。