[Flutter翻译]如何在Backendless Flutter SDK中使用自定义类

时间:2020-7-28 作者:admin

原文地址:backendless.com/how-to-use-…

原文作者:backendless.com/author/maks…

发布时间:2019年10月3日

[Flutter翻译]如何在Backendless Flutter SDK中使用自定义类

我们很高兴地向大家介绍Backendless Flutter SDK的新版本v0.2.0,它增加了对自定义类的支持。在本文中,我们将演示如何开始使用它。

要开始,打开你的Flutter项目或创建一个新的项目,并将Backendless Flutter插件添加到其中。你可以在这里找到关于如何开始使用Backendless Flutter SDK的详细说明。

设置Flutter SDK

Backendless Flutter SDK使用一个reflectable的插件来处理自定义类。在使用自定义类之前,我们需要完成以下步骤。

  1. 在pubspec.yaml文件中,将build_runner依赖关系添加到你的dev依赖关系中。
dev_dependencies:
 build_runner: ^1.0.0

接下来,在你的main.dart文件中,为生成的代码添加一个import,并在你的main方法中调用initializeReflectable()方法。可能会出现一个错误,说明导入不存在。不要担心,我们将在下一步解决它。

import 'package:backendless_sdk/backendless_sdk.dart'。
import 'main.reflectable.dart'; // 导入生成的代码。

main() {
   initializeReflectable(); // 设置反射支持。
   runApp(MyApp());
}
  1. 打开终端,运行以下命令。
flutter packages pub run build_runner build

这将生成所有必要的代码并解决导入错误。

创建自定义类

现在让我们声明自定义类,创建该类的对象,并将其保存在Backendless数据库中。对保存在Backendless数据库中的对象的类有几个要求。

  • 这个类应该用@reflector注解。不要忘记在你的类中添加以下导入。
import 'package:backendless_sdk/backendless_sdk.dart';
  • 该类必须包含默认的、公共的、无参数的构造函数。
  • 该类必须包含公共字段,其名称必须与数据库中的列名相匹配。
  • 可选要求–Backendless会自动为每个持久化的对象分配一个唯一的ID。如果应用程序需要访问分配的ID,该类必须声明以下字段。
String objectId;
  • 可选要求–除了objectId,Backendless还为每个持久化对象维护另外两个属性–创建和更新。前者包含了对象最初在Backendless数据库中被创建的时间戳。后者在对象每次更新时都会更新。要访问这些值,该类必须声明以下字段。
DateTime created;

DateTime updated。

下面是一个示例 “Person “类。

import 'package:backendless_sdk/backendless_sdk.dart';

@reflector // 这个注解可以对Person进行反思。
Class Person {
   字符串名称。
   int age;

   // 我们不必在这里创建无参数的构造函数,因为如果我们不指定构造函数的话。
   // 默认的无参数构造函数将被创建。
}

如果你想在main.dart文件中使用 “Person “类,请为这个类添加一个导入。

import 'person.dart';

然后在终端再次运行以下命令:

flutter packages pub run build_runner build

每次导入一个新的自定义类或对现有的自定义类进行修改时,请记住运行这个命令!它将为新的修改更新生成的代码。它将为新的变化更新生成的代码。

在你创建了自定义类之后,为它添加一个导入并运行这个命令。你可以使用Backendless.data.withClass()方法通过自定义类与你的Backendless数据库一起工作。

下面的代码在 “Person “表中保存了一个具有 “name “和 “age “属性的对象:

Person person = Person()
   ..name = "Joe"
   ..age = 25;
Backendless.data.withClass<Person>().save(person).then((savedPerson) {
   print("The object has been saved to the database");
});

以上就是全部内容了! 感谢您的阅读,祝您与Backendless一起快乐编码!


通过www.DeepL.com/Translator(免费版)翻译

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。