flutter如何集成pocketbase

最近在学习Flutter,想集成PocketBase作为后端服务,但不太清楚具体步骤。有没有人成功集成过?能否分享一下详细的操作流程,比如需要添加哪些依赖、如何配置连接参数,以及常见的注意事项?官方文档看了还是有些模糊,希望能有更直观的示例代码说明。谢谢!

2 回复

在Flutter中集成PocketBase,使用官方SDK:

  1. 添加依赖:
dependencies:
  pocketbase: ^0.8.0
  1. 初始化客户端:
import 'package:pocketbase/pocketbase.dart';

final pb = PocketBase('http://127.0.0.1:8090');
  1. 使用示例:
// 认证
await pb.collection('users').authWithPassword('账号', '密码');

// 查询数据
final records = await pb.collection('posts').getFullList();

更多关于flutter如何集成pocketbase的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中集成PocketBase可以通过以下步骤实现:

1. 添加依赖

pubspec.yaml 中添加:

dependencies:
  pocketbase: ^0.21.0
  http: ^1.1.0

2. 基本集成代码

import 'package:pocketbase/pocketbase.dart';

class PocketBaseService {
  static final PocketBase pb = PocketBase('http://127.0.0.1:8090');
  
  // 用户认证
  static Future<void> authWithPassword(String email, String password) async {
    try {
      final authData = await pb.collection('users').authWithPassword(
        email,
        password,
      );
      print('登录成功: ${authData.record?.email}');
    } catch (e) {
      print('登录失败: $e');
    }
  }
  
  // 获取数据
  static Future<List<RecordModel>> getRecords(String collection) async {
    try {
      final result = await pb.collection(collection).getFullList();
      return result;
    } catch (e) {
      print('获取数据失败: $e');
      return [];
    }
  }
  
  // 创建记录
  static Future<void> createRecord(String collection, Map<String, dynamic> data) async {
    try {
      await pb.collection(collection).create(body: data);
      print('创建成功');
    } catch (e) {
      print('创建失败: $e');
    }
  }
}

3. 在Flutter中使用

// 登录示例
ElevatedButton(
  onPressed: () async {
    await PocketBaseService.authWithPassword(
      'user@example.com',
      'password123'
    );
  },
  child: Text('登录'),
),

// 获取数据示例
FutureBuilder(
  future: PocketBaseService.getRecords('posts'),
  builder: (context, snapshot) {
    if (snapshot.hasData) {
      final records = snapshot.data as List<RecordModel>;
      return ListView.builder(
        itemCount: records.length,
        itemBuilder: (context, index) {
          return ListTile(
            title: Text(records[index].getStringValue('title')),
          );
        },
      );
    }
    return CircularProgressIndicator();
  },
)

4. 重要配置

  • 确保PocketBase服务正在运行
  • 处理CORS问题(开发时可在PocketBase配置中设置)
  • 在生产环境中使用HTTPS
  • 妥善处理认证状态管理

这样就完成了PocketBase在Flutter中的基本集成。

回到顶部