代码之家  ›  专栏  ›  技术社区  ›  dazza5000

如何在flutter项目中实现firebase密钥/google maps api密钥的外部化?

  •  1
  • dazza5000  · 技术社区  · 6 年前

    我想开放源代码的应用程序,我正在工作,但仍然使用它的个人。如何将firebase密钥和google maps api密钥外部化,使它们在公共repo中不可用?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Jacob Phillips    6 年前

    你可以在里面有一个目录 lib/ 对于可以进入单独回购的私有代码。对于非代码的私有数据,请使用顶级目录。

    比如说私人侦探 internal .下面是一个示例树。

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

    确保添加 internal/ .gitignore 在你的主要项目中。然后在私有目录中进行另一个repo。如果私有数据不经常更改,并且您不介意单独提交更改,那么这就足够了。有一些git管理的方法可以拥有嵌套的repo,但是对于imo这样的情况来说太难了。

    现在只需在 内部/ 像往常一样从另一个文件中导入。

    内部/钥匙.dart

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

    视图/地图.dart

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

    你明白了。