生涯未熟

生涯未熟

プログラミングをちょこちょこと。

Flutterでログイン後に再インストールしたらログイン済みのままなのをどうにかした

相変わらずFlutterやってるおじさんです。

今回はFirebase Authenticateを用いてログイン済みのユーザーが、アプリを再インストールしたらログイン済みのままになっていたのが気持ち悪いのでどうにかしました。

何故そうなったか?

iOS, Androidともに裏でバックアップを取っていますが(Android: Google Drive, iOS: keychainを使いバックアップ)、これをdisableにしようと思うとAndroidは以下のようにすればいいので簡単ですが、iOSだとちと骨が折れる作業となります。

  • AndroidManifest.xml
<application
    android:allowBackup="false"
>
</applicatoin>

そこで、 shared preferences を使って「インストール後、初めて起動した場合にはログアウトさせる」という処理を噛ませることにしました。

pub.dev

基本的な使い方についてはこちらで詳しくまとまってました。

www.virment.com

で、肝心の実装ですが必ず最初に通る main.dart に対して以下のようなコードを実装しました。

shared preferencesで保存した値はアンインストール時に揮発しますので、再インストール時でも問題なくログアウトされます。
こっちの方が楽なのでこういう形で実装しましたが、他に良い方法を知っている方がいらっしゃいましたら教えて下さい!