如何在Flutter项目中外部化Firebase密钥/ Google Maps API密钥?

时间:2018-07-06 00:09:53

标签: firebase flutter

我想开源我正在开发的应用程序,但仍要亲自使用。我将如何外部化firebase密钥和google maps api密钥,以使它们在公共存储库中不可用?

1 个答案:

答案 0 :(得分:1)

您可以在lib/中有一个目录,用于存放可以进入单独存储库的私人代码。对于不是代码的私人数据,请使用顶层目录。

让我们说私人目录被称为internal。这是一个示例树。

project/
  lib/
    internal/  <-- separate repo.
    view/
    model/
    ...
  test/
  android/
  ios/
  ...

确保在主项目中将internal/添加到.gitignore。然后在私有目录中创建另一个仓库。如果私有数据不经常更改,并且您不介意分别提交更改,这就足够了。有git管理的方法可以嵌套存储库,但是对于这种imo而言,这太困难了。

现在,只需像往常一样在internal/文件夹中创建一个类,并将其从另一个文件导入。

internal / keys.dart

final googleMapsKey = 'aj349aj4fp0_394jfam4gni-aoig4ja4goeifnwfa093';
// Firebase key, etc.

view / map.dart

import '../internal/keys.dart';
var googleMap = new GoogleMap(apiKey: googleMapsKey);

您明白了。