繁体   English   中英

如何将我的 flutter firebase/firestore 实现和提供程序分离到一个独立的 package 或库中?

[英]How can I separate my flutter firebase/firestore implementation and providers to a independent package or library?

目前,我正在使用 Provider 和 Firebase 开发 flutter web 应用程序。我想使用相同的数据库和数据提供程序开发其他应用程序(例如和管理控制台)。

我的应用目前有以下文件夹

my_app
  - models
  - providers
  - services (firebase/firestore crud)
  - pages
  - utils
  - widgets

我希望将模型、提供者和服务作为本地 package 或图书馆。 就像是:

my_lib
  - models
  - providers
  - services
my_app
  - pages
  - utils
  - widgets
my_other_app
  - pages
  - utils
  - widgets

首先,我不知道如何创建本地库,以及如何使它成为 my_apps 的依赖项。

其次,由于我将在 my_lib 上使用 Firebase 和 Firestorage,我不知道 main 中初始化的实例如何被 package 使用。是否足以在 my_lib 上启动全局变量?

在您的项目文件夹中,您可以创建一个文件夹 packages,然后using flutter create --template=package my_package 创建您的“包”,

让你的应用程序可以依赖它在 pubspec.yaml

 my_package:
   path: ../packages/my_package

在这种情况下,您将拥有

 - my_project
    -lib
    -packages
      - my_package

当它只是你的应用程序时,这很有效,具体取决于包。

如果你需要在不同的项目中访问你的包,你可以使用 github/gitlab 来托管你的包。

假设你有两个需要共享私有 package、my_app 和 my_admin 的 repos,你可以创建一个新的 repo my_packages 并将你的包放在 IE 中

 - my_packages
   - package1
   - package2

在您的应用程序中,您现在可以依赖使用 git 的软件包,例如

 package1:
    git:
      url: git@github.com:username/my_packges.git
      ref: main // branch
      path: ./package1 //package name
package2:
    git:
      url: git@github.com:username/my_packges.git
      ref: main // branch
      path: ./package2 //package name


对于 github,您需要ssh 密钥

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM