[Flutter翻譯]如何在Backendless Flutter SDK中使用自定義類

Sunbreak發表於2020-07-26

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

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

釋出時間:2019年10月3日

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(免費版)翻譯

相關文章