【react-native】realmでデータベース操作

バックエンド初心者でも手軽に使えるデータベース操作ツールとして定評がある

realmですが、javascriptでありながらネイティブの機能を扱うreact-nativeでも

使うことができます。使い方はこちら↓

npm i realmでrealmをインストール

import Realm from "realm";

スキーマのテンプレ(入れ物)を追加します。

const TaskSchema = {
  name: "Task",
  properties: {
    _id: "int",
    name: "string",
    status: "string?",
  },
  primaryKey: "_id",
};

useEffectにrealmの機能が入った関数を追加。

useEffect(() => {
  apply();
}, [])

apply関数の中身はこんな感じ。realm.Openの中で先ほど追加したTaskSchemaを

スキーマオブジェクトとして持ちます。

そのあとrealm.writeでTaskSchemaの中身に倣って_id、name、statusの中に

任意の数字・文字列を入力します。

Realm.Openで

async function apply(){
  let task1;
  try{
    const realm = await Realm.open({
      path: "myrealm",
      schema: [TaskSchema],
    });
    realm.write(() => {
      task1 = realm.create("Task", {
        _id: 31,
        name: "go grocery shopping",
        status: "Open",
      });
    });
  }catch(error){
    console.log('エラー' + error.message);
  }
  console.log(task1)
}

try/catchを抜けたあたりでconsole.logでtake1の中身を確認すると

以下のようになります。

LOG {“_id”: 31, “name”: “go grocery shopping”, “status”: “Open”}

try/catchの中でconsole.log(task1)をするとエラーが起きるので注意してください。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG