搜索插件、代码仓与 APP 分类

插件详情v1.1.0

pocketbase_server_flutter

直接从 Android/iOS 使用 Flutter 启动 Pocketbase 服务器

AndroidiOSWebmacOSWindowsLinux
近 30 天下载
138
喜欢数
35
Pub 分数
130

安装插件

flutter pub add pocketbase_server_flutter

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

pocketbase_server_flutter 包使开发者能够在 Android、iOS、Web、macOS、Windows 和 Linux 上的 Flutter 应用中直接启动 PocketBase 服务器。它通过将数据库服务器嵌入应用,简化了后端设置,非常适合原型设计、本地开发或轻量级后端需求。该包为每个平台利用原生二进制文件,确保兼容性和性能。对于需要实时数据、身份验证和文件存储但无需外部服务器基础设施的应用尤其有用。

适合场景

  • 使用嵌入式后端进行Flutter应用的本地开发
  • 快速原型开发全栈应用程序
  • 具有同步功能的离线优先应用程序
  • 演示全栈Flutter的教育项目
  • 带有内置数据库的简单 CRUD 应用

主要特点

  • 在 Flutter 应用中嵌入 PocketBase 服务器
  • 支持所有主要平台,包括移动设备和桌面端
  • 自动化服务器启动和管理
  • 实时数据库和身份验证
  • 轻量且易于集成

适合对象

  • Flutter 开发人员构建全栈应用
  • 初学者学习后端集成
  • 团队快速原型开发MVP
  • 需要本地数据库和实时功能的项目
  • 需要最少服务器维护的应用程序

使用建议

  • 不适合用于生产规模的部署
  • 由于捆绑了服务器二进制文件,应用大小增加
  • 需要仔细处理服务器生命周期
  • 与云托管解决方案相比,可扩展性有限
  • 如果公开暴露,可能存在安全风险

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

Pocketbase Server Flutter

pocketbase_server version

Run Pocketbase Server directly from Android/IOS with flutter

Screenshot 2023-09-16 at 12 09 12 PM

Usage

Checkout Pocketbase Server example app

Start pocketbaseServer
PocketbaseServerFlutter.start(
  superUserEmail: "test@user.com",
  superUserPassword: "password",
  hostName: await PocketbaseServerFlutter.localIpAddress,
  port: "8080",
);
Advanced Usage
// Get path to load resources using `path_provider`
final Directory staticDir = await getTemporaryDirectory();

// Directory to load static files (Optional)
final String staticFolder = "${staticDir.path}/pb_static/";

// Directory to load js hook files (Optional)
final String hooksFolder = "${staticDir.path}/pb_hooks/";

// Directory to save sqlite files and default data
final String dataFolder = "${staticDir.path}/pb_data/";

// add `pb_static` and `pb_hooks` folder in assets of your project, and load all files from assets to given path
await PocketbaseServerFlutter.copyAssetsFolderToPath(
  path: staticFolder,
  assetFolder: "pb_static",
  overwriteExisting: true,
)

await PocketbaseServerFlutter.copyAssetsFolderToPath(
  path: hooksFolder,
  assetFolder: "pb_hooks",
  overwriteExisting: true,
);

PocketbaseServerFlutter.start(
  superUserEmail: "test@user.com",
  superUserPassword: "password",
  hostName: await PocketbaseServerFlutter.localIpAddress,
  port: "8080",
  enablePocketbaseApiLogs: true,
  dataPath: dataFolder,
  staticFilesPath: staticFolder,
  hookFilesPath: hooksFolder,
);

Stop pocketbaseServer

PocketbaseServerFlutter.stop();

Listen to pocketbaseServer events, setup eventCallback

PocketbaseServerFlutter.setEventCallback(
    callback: (event, data){
        // Handle event and data
    },
);

Some helper methods

// To check if pocketBase is running (not reliable)
PocketbaseServerFlutter.isRunning

// To check pocketbaseMobile version
PocketbaseServerFlutter.pocketbaseMobileVersion

// To get the ipAddress of mobile ( to run pocketbase with this hostname )
PocketbaseServerFlutter.localIpAddress

Mobile Setup

  • IOS

If getting error related to Undefined symbol, Make sure to run pod install on ios directory, open IOS project in XCode

Click on Pods, Then select pocketbase_server_flutter from Targets list, and select Build Phases

Screenshot 2023-09-16 at 11 19 30 AM

Then in Link Binary With Libraries section, click on + button and search for libresolv.tbd and choose from result and click on Add

image

  • Android

Should work out of the box

Desktop Setup

Desktop requires pocketbaseExecutable path in start()

To get pocketbaseExecutable in app, add the executable in Assets and on runtime copy it from assets to another path using path_provider Or download the executable on Runtime

  • MacOS

Edit your Runner/**.entitlements file

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
	<dict>
		<key>com.apple.security.app-sandbox</key>
		<false />
		<key>com.apple.security.cs.allow-jit</key>
		<true />
		<key>com.apple.security.network.client</key>
		<true />
		<key>com.apple.security.network.server</key>
		<true />
	</dict>
</plist>
  • Windows, Linux

Should work out of the box

Resources

https://pocketbase.io/

Built with: pocketbase_mobile

Note

This is for running Pocketbase server from mobile, to connect with pocketbase server, use official pocketbase client plugin

所属分类

依赖

依赖清单 1 项

源码仓库

使用此插件的项目

暂无相关数据。