原文地址:backendless.com/how-to-use-…
原文作者:backendless.com/author/maks…
发布时间:2019年10月3日

我们很高兴地向大家介绍Backendless Flutter SDK的新版本v0.2.0,它增加了对自定义类的支持。在本文中,我们将演示如何开始使用它。
要开始,打开你的Flutter项目或创建一个新的项目,并将Backendless Flutter插件添加到其中。你可以在这里找到关于如何开始使用Backendless Flutter SDK的详细说明。
设置Flutter SDK
Backendless Flutter SDK使用一个reflectable的插件来处理自定义类。在使用自定义类之前,我们需要完成以下步骤。
- 在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());
}
- 打开终端,运行以下命令。
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(免费版)翻译