Flutter 插件sup_gen_runner的使用_sup_gen_runner是一个用于生成Dart类、枚举和视图的Flutter插件

Flutter 插件sup_gen_runner的使用_sup_gen_runner是一个用于生成Dart类、枚举和视图的Flutter插件

sup_gen_runner 是一个用于生成Dart类、枚举和视图的Flutter插件。它可以从Supabase PostgreSQL服务器直接生成这些结构,从而简化将数据库模式集成到Dart/Flutter项目中的过程。

特性

  • 自动从PostgreSQL表生成Dart类。
  • 复制公共模式或指定模式下的枚举类型和视图。
  • 简单配置和无缝集成。

安装

1. 添加插件到项目

pubspec.yaml 文件中添加以下内容:

dependencies:
  supabase_dart_generator: ^<最新版本>
dev_dependencies:
  build_runner: ^2.3.3

替换 <最新版本> 为插件的最新版本。

运行以下命令以获取插件:

flutter pub get
# 或者
dart pub get

2. 配置项目

pubspec.yaml 中添加配置
sup_gen_option:
  output: lib/supabase_models # 输出文件夹
  enable: true # 启用或禁用插件
  schema: 'public' # 使用的模式
  useSsl: false # 控制是否需要SSL连接到服务器
添加 .env 文件

在项目根目录下创建一个 .env 文件,并包含你的Supabase数据库凭证:

# .env 文件
SUPABASE_DB_USER=postgres
SUPABASE_DB_HOST=DB_HOST
SUPABASE_DB_PORT=DB_PORT
SUPABASE_DB_PASSWORD=YOUR_DB_PASSWORD
SUPABASE_DB_SCHEMA=public
SUPABASE_DB=YOUR_DATABASE_NAME

⚠️ 重要提示:保持 .env 文件的安全。不要将其提交到版本控制中。你不想把家门钥匙交给全世界。

3. 生成类

运行以下命令以生成类:

dart run build_runner build

你将在输出文件夹中看到一些文件:

  • supabase_enums.gen.dart // 枚举
  • supabase_tables.gen.dart // 表

示例Demo

假设我们有一个名为 users 的表和一个名为 status 的枚举类型。以下是生成的类和枚举类型的示例。

生成的枚举类型 supabase_enums.gen.dart

// 生成的枚举类型
enum UserStatus {
  active,
  inactive,
  pending,
}

生成的类 supabase_tables.gen.dart

// 生成的用户类
class User {
  final int id;
  final String name;
  final UserStatus status;

  User({
    required this.id,
    required this.name,
    required this.status,
  });

  factory User.fromJson(Map<String, dynamic> json) {
    return User(
      id: json['id'] as int,
      name: json['name'] as String,
      status: UserStatus.values.firstWhere((e) => e.toString() == 'UserStatus.${json['status']}'),
    );
  }

  Map<String, dynamic> toJson() {
    return {
      'id': id,
      'name': name,
      'status': status.toString(),
    };
  }
}

更多关于Flutter 插件sup_gen_runner的使用_sup_gen_runner是一个用于生成Dart类、枚举和视图的Flutter插件的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter 插件sup_gen_runner的使用_sup_gen_runner是一个用于生成Dart类、枚举和视图的Flutter插件的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter开发中,sup_gen_runner这样一个听起来不太常见的插件名称可能指向某个特定的、较为小众的工具或库。由于sup_gen_runner并非一个广为人知的Flutter官方插件或广泛使用的第三方库,我无法提供确切的官方文档或广泛认可的用例。不过,基于命名习惯和Flutter插件的一般用途,我们可以做一些合理的推测,并尝试给出一些可能的代码结构或使用场景示例。但请注意,这些示例是假设性的,并不代表sup_gen_runner的实际功能。

假设性用途:代码生成器

如果sup_gen_runner是一个代码生成器插件,它可能用于自动化生成Flutter项目中的某些重复性代码,如JSON序列化、模型类、路由配置等。以下是一个假设性的代码生成器插件的使用示例:

1. 插件依赖配置(pubspec.yaml

首先,在pubspec.yaml文件中添加对sup_gen_runner的依赖(请注意,这里的依赖是假设的,实际使用时需要替换为真实存在的插件):

dependencies:
  flutter:
    sdk: flutter
  # 其他依赖...

dev_dependencies:
  build_runner: ^x.y.z  # 代码生成器通常依赖于build_runner
  sup_gen_runner: ^a.b.c  # 假设的sup_gen_runner插件

2. 使用代码生成器

假设sup_gen_runner能够生成一些基于注解的模型类,我们可能会在项目中这样使用它:

// 定义模型类并使用假设的注解
@SupGenModel()
class User {
  String name;
  int age;

  // 假设的注解会生成fromJson和toJson方法
  User({required this.name, required this.age});
}

然后,在项目根目录下运行代码生成命令:

flutter pub run build_runner build

这条命令会触发sup_gen_runner(如果它确实是一个代码生成器的话)来生成相应的代码,比如User.g.dart文件,其中可能包含fromJsontoJson方法的实现。

3. 生成的代码使用

生成的代码可以被导入并使用,如下所示:

import 'user.g.dart';  // 导入生成的代码

void main() {
  // 使用生成的fromJson方法
  User user = User.fromJson({'name': 'Alice', 'age': 30});
  
  // 使用生成的toJson方法
  Map<String, dynamic> userJson = user.toJson();
  print(userJson);
}

注意事项

  • 上述示例完全基于假设,因为sup_gen_runner并不是一个广为人知的Flutter插件。
  • 如果sup_gen_runner确实存在且功能不同,请参考其官方文档或源代码以获取准确的使用指南。
  • 在实际项目中,务必使用经过验证和广泛使用的插件,以确保项目的稳定性和安全性。

希望这个假设性的示例能帮助你理解如何探索和使用一个未知的Flutter插件。如果你有更多的背景信息或具体的插件描述,可能会得到更准确的答案。

回到顶部