見出し画像

Velo 第06回 コレクションアイテムのオーナー

コレクションにデータがインサートされるとき、システムはそれが誰のデータかを オーナーというフィールドにIDを使って書き込みます。
システムが自動で書き込むデータは他にデータID、作成日、変更日などがあります。

このオーナーIDやルーターという機能を使うとコレクションの権限を公開しながら本人以外のアクセスを許さないようにできます。
さて問題はこのオーナーIDをどのようにして知ることができるかということになります。

Wix の wix-members-frontend モジュールには CurrentMember というAPIがあり getMember( ) 関数を持っています。
この関数を使えばサイトにアクセスしているメンバーのIDを知ることができます。
以下のコードをご覧下さい。

// 冒頭にインポート文を書きます
import { currentMember } from 'wix-members-frontend';

// getMember() 関数を実行し結果を待ちます
currentMember.getMember()
  // プロミスが解決すればメンバーオブジェクトから _idプロパティを取り出します
  .then((member) => {const id = member._id;
                     //.....
                     }

ここで得られるIDがコレクションのオーナーIDとして書き込まれます。注意しないといけないのはログインの有無です。
サイトにログインしていればログインIDで個人が特定できターミナルによらずIDは一致しますが、ログインしていなければターミナル毎に違うIDを発生しますのである意味使い物になりません。

オーナーIDについては Velo Developer certification 4択問題にも出題されています。

【設 問】
Which of the following collection fields are added automatically to each record? Select All answers that apply.
【選択肢】
Created Date, Owner, Updated Date

【設 問】
When is the "Field Key" of a collection field used?
【選択肢】
When referencing the collection field from code.

Velo開発のご依頼はこちら


この記事が気に入ったらサポートをしてみませんか?