LoginSignup
5
5

More than 3 years have passed since last update.

【adalo】Favoriteボタンを5分で実装する

Posted at

最初に

SNSでは必須ともいうべき「Favoriteボタン」をadaloで実装してみます。
簡単と言われるNoCodeサービスでどれくらい簡単に実装できるのか調べる目的で試して見たのですが、なんと実装時間「5分」で出来てしまいました・・・。

以下、その手順を記載します。

環境

MacOS Catalina 10.15.6

使用するToggleコンポーネントについて

Favoriteボタンの実装には「Toggle」を使用します。
adaloの「Toggle」は選択したタイミングでデータベースを即時更新します。
更新には以下の2種類があります。

・該当レコードのTrue/Falseプロパティを更新する。
関連づけられた項目を即時更新します。
例えば「ListsコレクションのStatusプロパティ」をToggleと紐付けた場合、ToggleのOn/Offに応じて該当プロパティの値を即時更新します。

・2レコード間の「relationship」を更新する
関連づけられた「リレーション」を即時更新します。
例えば「Listsコレクション」を作成し複数の「Users」コレクションとリレーションが貼られている場合、該当のToggleをクリックすることでUserがListのメンバか否かを更新します。

Favoriteボタンは後者の方法を使って実装します。

実装方法

1)Favoriteボタンを配置するコレクションを作成する
2)Usersテーブルとのリレーションを設定する
3)CustomListを設置しToggleボタンを配置し2)で設定した「リレーション」を割り当てる
4)体裁を整える

の手順で実装します。

1)Favoriteボタンを配置するコレクションを作成する

画面左のメニューから「DataBase」を選択し、Name、Imageという項目を持つ「Listsコレクション」を作成します。
01.gif

2)Usersテーブルとのリレーションを設定する

「Usersコレクション」に「Listsコレクション」との「N対N」リレーションを追加します。

02.gif

3)CustomListを設置しToggleボタンを配置し2)で設定した「リレーション」を割り当てる

画面に「CustomListコンポーネント」を配置します。「CustomListコンポーネント」は「Listsコレクション」と紐付けます。次に「Toggleコンポーネント」を先ほど追加した「CustomListコンポーネント」の上に配置します。この「Toggleコンポーネント」は「Current List > Users > Includes Logged In User」と紐付けます。

03.gif

4)体裁を整える

「CustomListコンポーネント」にListコレクションの値を表示させるため、項目を紐付けます。
05.gif

せっかくなのでToggleをFavoriteボタンっぽく、ハートに変更してみます。
06.gif

また複数のユーザー間でFavoriteボタンをクリックされた数の合計も出力してみます。
07.gif

実装を確認する

実装結果を確認するために以下のデータを登録しました。

【Usersコレクション】
スクリーンショット 2020-08-27 12.23.21.png

【Listsコレクション】スクリーンショット 2020-08-27 12.23.34.png

まず、ユーザー「test001@test.com」でログインし、List02のFavoriteボタンをクリックしてみます。
08.gif

クリックしたFavoriteボタンのカウントが0→1に変わりました。

次に「test002@test.com」のユーザーでログインします。

ログインするとユーザー「test001@test.com」によりList02のカウントされているため、List02のカウントが「1」になっています。ここで、List01、List02ともクリックしてカウントを上げておきます。
09.gif

10.gif

うまく行きました!
これで実装完了です。

5
5
0

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
  3. You can use dark theme
What you can do with signing up
5
5