flutter_dotenvで環境変数を管理
flutter_dotenvを使えば、GitHubに上げたくないパスワードやユーザー名などのシークレットな情報を安全に管理することができます。
今回はその使い方についてご紹介します。
flutter_dotenvとは
環境変数を.envファイルに保存して、その変数をアプリケーションで使用することで機密情報を管理できます。
環境変数とは
envファイルの作成
まずはFlutterプロジェクトのルートディレクトリに.envファイルを作成します。このファイルに環境変数を記述していきます。
今回はMySQLに設定するuser名をmy_db_user、passwordをmy_db_passwordとして登録。
/// .env
DB_USER=my_db_user
DB_PASSWORD=my_db_password
gitignoreに.envファイルを登録
.envファイルには機密情報が含まれているため、バージョン管理システム(例: Git)で追跡しないようにすることが重要です。
プロジェクトの.gitignoreファイルに、以下のように.envを追加してください。
/// .gitignore
.env
これにより、.envファイルがGitリポジトリに追加されず、機密情報が公開されるリスクを軽減できます。
mysql1.dartのインストール
DartでMySQLを使用するために、mysql1.dartをインストール。
% dart pub add mysql1
mysql1.dartを使用してデータベースに接続する際に、ConnectionSettingsにユーザー名やパスワードを渡す必要があります。
flutter_dotenvを使ってこれらの情報を環境変数から取得するように変更します。
flutter_dotenvのインストール
% dart pub add dotenv
サンプルコード
import 'package:mysql1/mysql1.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
Future<MySqlConnection> main() async {
var env = DotEnv(includePlatformEnvironment: true)..load(['.env']);
var settings = MySqlConnection.connect(
ConnectionSettings(
host: 'localhost',
port: 3306,
user: env['DB_USER'],
password: env['DB_PASSWORD'],
db: 'test',
),
);
return settings;
}
var env = DotEnv(includePlatformEnvironment: true)..load(['.env']);
この行で作成した.envファイルから登録した環境変数を取得し、mysql1.dartのConnectionSettingsに環境変数を渡します。
user: dotenv.env['DB_USER']
password: dotenv.env['DB_PASSWORD']
.envファイルに登録したDB_USERやDB_PASSWORDをmysqlのuser, passwordとして設定しました。
これで環境変数を使用できます!