LoginSignup
1
1

More than 1 year has passed since last update.

[Flutter]flutter_dotenvで環境変数を設定

Posted at

プロジェクトのルートに.envフォイルを作成します。この中に環境変数を定義します。

.env
FOO=foo
BAR=bar
FOOBAR=$FOO$BAR
ESCAPED_DOLLAR_SIGN='$1000'

それでは環境変数を使えるようにするライブラリをインストールします。

以下、元のpubspec.yamlのassets部分です。

pubspec.yaml
  # To add assets to your application, add an assets section, like this:
  # assets:
  #   - images/a_dot_burr.jpeg
  #   - images/a_dot_ham.jpeg

以下のように変更します。

pubspec.yaml
  # To add assets to your application, add an assets section, like this:
  assets:
    - .env

gitでコードを管理されているかたは、コードがgitにpushされないように、.gitignoreファイルに.env*を追加します。.gitignoreがプロジェクトのルートに無いかたは、新しく.gitignoreファイルを作ってください。

.gitignore
.env*

それではmain.dartにライブラリをimportしていきます。

main.dart
import 'package:flutter/material.dart';

import 'package:flutter_dotenv/flutter_dotenv.dart' as DotEnv; // 追加

環境変数をloadしようとしたのですが、
うまくいかないです:disappointed_relieved:

main.dart
Future main() async {
  await DotEnv.load();
  runApp(MyApp());
}

これだとうまくいきました:joy:

main.dart
Future main() async {
  await DotEnv.DotEnv().load(".env");  
  runApp(MyApp());
}

main.dartで環境変数が使えるようになったかprint文で確認してみます。

main.dart
print('${DotEnv.DotEnv().env}');

無事コンソールに出力されました。

I/flutter (28320): {FOO: foo, BAR: bar, FOOBAR: $FOO$BAR, ESCAPED_DOLLAR_SIGN: $1000}

以下のように、取得したい環境変数を指定して、値が取得できることを確認します。

main.dar
print('${DotEnv.DotEnv().env['ESCAPED_DOLLAR_SIGN']}');

無事取得できました。

I/flutter (28320): $1000

今後は、APIのキーを環境変数にして、安全に値を取得できるようにしていきます。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1