LoginSignup
1
Organization

Hexabase Flutter SDKの使い方(リンクデータの取得)

Hexabase(ヘキサベース)は企業向けのBaaS(Backend as a Service)を提供しています。認証やデータストア、ファイルストレージ、リアルタイム通知などの機能があり、企業向けのシステム開発に必要な機能をまるっと提供しています。

APIはREST APIとGraphQLを提供しています。そのAPIをラップしたSDKも開発を進めています。SDKは現在、TypeScriptとDart向けに開発しています。Dart向けのSDKは、もちろんFlutterでも利用できます。

この記事ではFlutter SDKについて、インストールとデータストアでのリンクしたデータの取得方法について解説します。

パッケージとソースコード

パッケージはpub.devで公開しています。

hexabase | Flutter Package

ソースコードはGitHubにて公開しています。ライセンスはMIT Licenseです。

hexabase/hexabase-dart: Hexabase SDK for Dart & Flutter

インストール

インストールは dart pub get で行えます。

dart pub get hexabase

インポート

SDKをインポートします。

import 'package:hexabase/hexabase.dart';

初期化

まずインスタンスを作成します。

var client = Hexabase();

別なファイルで再度インポートした場合には、以下でインスタンスを取得してください。

var client = Hexabase.instance;

リンクについて

リンクはいわゆるリレーションです。データ同士を紐付けることで、関連データとして一度のクエリーでデータを取得できます。

0979 app.hexabase.com - 0328114856.jpg

まず最初に管理画面にて、データベース関連を設定します。

  1. マスター側のデータベース設定を開く
  2. 「データベース関連の設定」タブを開く
  3. 「データベース関連」でリンクを張るテーブルを指定する

詳しくは データベースの関連付け | Hexabase 開発ガイド をご覧ください。

関連データの取得

関連データを取得する際には、HexabaseQueryでincludeを指定してください。

var project = client.project(id: 'YOUR_PROJECT_ID');
var datastore = await project.datastore(id: 'YOUR_DATABASE_ID');
// HexabaseQueryオブジェクト
var query = datastore.query();
// include(true)で関連データを取得します
query.per(100).include(true);

// データを取得
var items = await datastore.items(query: query);

関連データの取り出し

関連データを取得する際には、 getAsItem を利用します。これは items と同じく HexabaseItem オブジェクトです。以下は一例です。

item.getAsItem('FIELD_NAME').title

なお、関連データの内容を変更したい場合には以下のようにしてください。

var parent = item.getAsItem('FIELD_NAME');
parent.set("name", "New name");
await parent.save();

まとめ

Dart SDKはFlutterでも利用できます。Flutterで使えると言うことは、iOS/Androidといったスマートフォンアプリやタブレットアプリはもちろん、Webやデスクトップアプリ開発でも利用できます。ぜひHexabaseをDart SDKとともに活用してください。

関連データを用いると、一般的なデータベースのようなリレーションとしてデータを扱えるようになります。現状は取得のみですが、ぜひ活用してください。

hexabase | Flutter Package

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1