cloudbase 0.0.7
cloudbase: ^0.0.7

Flutter Android iOS

CloudBase 快速开发工具,主要整合当前 cloudbase_* 的包; 并进行了优化封装。同时增加与云函数开发包配套的命令调用。

CloudBase 快速开发工具 #

CloudBase 快速开发工具是一个集成云开发函数开发和 Flutter 客户端整合开发的快速工具。

利用函数开发工具进行快速函数开发,并在 Flutter 客户端协同调用的链套工具集。

文档 #

初始化 #

我们首先在 lin/main.dartmain 函数中初始化 SDK:

import "package:/cloudbase/cloudbase.dart";

main() {
    // 这里替换为你真实的配置即可
    final security = CloudBaseCoreSecurityCredentials('com.example.example', '1');
    final credentials = CloudBaseCoreCredentials("env id", security: security);

    // 创建一个 CloudBase 实例
    CloudBase.create(credentials);

    /// 其他代码
}

登录认证 #

const auth = CloudBase.instance.auth;

参考文档👉登录认证

云函数 #

const function = CloudBase.instance.function;

参考文档👉云函数

此外,因为云函数功能单一,我们直接在 CloudBase 单例世行增加了快速调用方法:

CloudBase.instance.callFunction('function name', {/* params */});

文件存储 #

const storage = CloudBase.instance.storage;

参考文档👉文件存储

数据库 #

const database = CloudBase.instance.database;

参考文档👉数据库

CloudBase 工厂方法 #

除了使用 CloudBase.instance 来获取唯一单例为,我们还有其他单例模式,以满足不同场景需求。

创建/初始化/更新单例配置 #

const cloudbase = CloudBase(/* credentials */);

这个不是工厂函数,而是初始化函数,当缓存中没有当前环境实例是,进行创建,当存在是进行更新到当前最新 常用场景为多环境或者需要动态更新配置的环境。

创建/初始化 #

const cloudbase = CloudBase.create(/* credentials */);

比较是和多环境下使用,这个工厂函数会按照 credentials 信息查询缓存的环境单例,如果存在直接返回,不存在创建后返回。

按照环境 ID 获取单例 #

const cloudbase = CloudBase.getInstance("You env ID");

比较是和多环境情况下使用,从缓存的环境实例中进行获取,如果不存在则抛出一个 CloudBaseInstanceDoesNotExistsException 异常。

单一环境获取/创建/初始化 #

/// 确定已经初始化挥霍创建后获取
/// 如果没有初始化创建,则会抛出一个 CloudBaseInstanceDoesNotExistsException 异常
CloudBase cloudbase = CloudBase.single();

/// 不确定是否创建或初始化进行初始化创建并获取
cloudbase = CloudBase.single(/* credentials */);

确定已初始化创建,获取唯一单例 #

const cloudbase = CloudBase.instance;

如果不存在则抛出一个 CloudBaseInstanceDoesNotExistsException 异常。

云函数命令 #

在使用了配套的云函数 SDK 开发工具时,这将是一个很好的获取选项

编写命令 #

import "package:cloudbase/cloudbase.dart";

class QueryUserCommand extends CloudBaseFunctionBaseCommand<User> {
  /// 定义云函数命令
  @override
  String get command => 'queryUser';

  /// 设置云函数处理结果数据解码器
  @override
  User deserializer(data, _) => User.formJson(data);

  /// 定义云函数名称
  @override
  String get functionName => 'users';
}

调用命令 #

import "package:cloudbase/cloudbase.dart";

const cloudbase = CloudBase.instance;
const command = QueryUserCommand(1); // 查询用户 ID 为 1 的用户。

try {
    User user = await cloudbase.command(command);

// 也可以不用 on catch 语法,直接在 catch 中进行统一处理。
// 但是推荐使用 on catcb 因为 CloudBaseFunctionCommandException
// 错误是可解析的函数正常错误,而 catch 则为其他错误。没有固定格式而言。
} on CloudBaseFunctionCommandException catch (e) {
    print(e); // 云函数命令返回错误
} catch(e) {
    print(e); // 其他错误
}

LICENSE #

MIT License

1
likes
70
pub points
37%
popularity

Publisher

bytegem.org

CloudBase 快速开发工具,主要整合当前 cloudbase_* 的包; 并进行了优化封装。同时增加与云函数开发包配套的命令调用。

Homepage
Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

cloudbase_auth, cloudbase_core, cloudbase_database, cloudbase_function, cloudbase_storage, flutter

More

Packages that depend on cloudbase