

## 状況

Laravel8とFirebase Authenticationを用いてWebアプリケーションを作成しました。  
以下のサイト様を参考に、`resources/keys/`配下にFirebaseからダウンロードしたjsonファイルを設置し、アプリケーション側で利用しています。

[Laravel6.0 の認証を Firebase のTwitter
Oauth認証で行ったメモ](https://qiita.com/hibohiboo/items/11768cb10bf1e7025090)

**.env**

[code]

    FIREBASE_CREDENTIALS=secret.json
    
[/code]

**config/firebase.php**

[code]

    <?php
    
    return [
        'credentials' => [
            'file' => base_path(env('FIREBASE_CREDENTIALS')),
            'auto_discovery' => true,
        ],
    ];
    
[/code]

## 問題

Dockerの開発環境と本番環境でのFirebaseの認証用jsonをどう管理すればよいかがわかりません。  
githubを利用しているのですが、流石にここにcommit＆pushしてしまうのはどうかと思いますし、仮にpushしてしまうと本番とDockerの認証用jsonが一緒になってしまいます。

環境ごとに認証用jsonを切り分けてかつ、管理する方法はありますでしょうか？  
ご教示いただけますと幸いです。

よろしくお願いいたします。


CC BY-SA 4.0
2021-08-25T10:35:20.583
81036
2021-08-26T01:24:32.203
2021-08-26T01:04:35.187
3060
31257
question
firebase security
シークレットキーの管理はどの様に行うべきか


認証情報等を含む GitHub に push すべきではないファイルは、`.gitignore`
ファイルを使って無視リストに登録しておくことをお勧めします。

[ファイルを無視する - GitHub Docs](https://docs.github.com/ja/github/getting-started-
with-github/getting-started-with-git/ignoring-files)

また、環境毎に設定を切り替えて管理する方法としては、`.env.production` や `.env.development`
のように個別のファイルに分けて記述する方法があるようです。

(こちらは Ruby での例なのでそのまま当てはまるかは分かりませんが、"dotenv" としての基本的な考え方は応用できそうです)

[What other .env* files can I use? | Ruby
dotenv](https://github.com/bkeepers/dotenv#what-other-env-files-can-i-use)

以下は少し古いかもしれませんが、Laravel で日本語での解説例になります。

[[Laravel 5.5]
読み込む.envファイルを環境ごとに切り替える](https://qiita.com/mmmmmmanta/items/b992c7d8cd69343b6626)


CC BY-SA 4.0
2021-08-26T01:24:32.203
81051
2021-08-26T01:24:32.203
3060
81036
answer