PRO+ 公開サンプル · ログイン不要で全文をご覧いただけます。

PRO

インストール前の試食 · ログイン不要

appwrite/appwrite バックエンド・DB

自分の記録だけを見せるアプリ、ログインの次に必要なこと

会員が自分の記録と写真を見るアプリを例に、ログイン・記録保存・ファイル保管を6段階の手描き動画で理解します。他の会員へデータを見せないために、何を決めるかも確認します。

69秒の動画公式画面3枚選び方

01 · 動画でひと目に

自分の記録だけを見せるアプリ、ログインの次に必要なこと

韓国語音声・字幕の動画です。ログインと権限、記録と写真の保存、2アカウントでの確認を手描きで説明します。ギット飯の説明図で、実行やセキュリティテストの結果ではありません。

02 · 公式画面を読む

画面を切り替え、自分のサービスに当てはめてみる

利用者向けのアプリ画面ではなく、開発・運用担当者が見るAppwriteの管理画面です。以下の活用案は、個人の記録アプリにつなぐと仮定したギット飯の解説です。

01 / Auth · 会員アカウント

会員一覧があっても、ログイン画面までできるわけではありません

Appwrite公式のAuth Users管理画面。ユーザー名、メール、認証状態とMFAの列がある会員一覧
公式の管理画面 · 静止画画像の出典 ↗機能のドキュメント ↗画像を大きく見る ↗
画面で確認できること
Users一覧に名前・メールアドレスと認証状態が表示されています。運用担当者がアカウントを確認する画面で、利用者向けのログインフォームではありません。
自分のアプリなら
個人の記録アプリなら「誰からのリクエストか」を確認する基盤になります。ログインした人のIDを、記録やファイルのアクセス規則につなぎます。
自分で作る部分
登録・ログイン画面、エラー表示、ログイン後の遷移を作り、SDKに接続します。アカウントがあるだけで、他の人の記録へのアクセスまで自動的に制御されるわけではありません。

画面内の英語・名前・メールアドレスは原作のサンプルデータです。画面内のPro表示はAppwriteのプランで、ギット飯PRO+とは別です。この画像だけでは必要なプランや権限設定を判断できません。

画面:Appwriteおよび貢献者 · BSD-3-Clause。手描き・解説・動画:ギット飯。文書確認:2026年10月15日 / 元画像確認:2026年10月11日。 画像資料のライセンス ↗

自分の条件なら、どちらを選ぶ?

この条件なら、こう選びます

新しい会員サービス:Appwrite と PocketBase、どちらを選ぶ?

以下の状況を仮定した選び方です。条件が変わると、向いている道具も変わります。

01 · 想定する状況

開発者はいるがサーバー運用者はいない小さなチームが、会員別の非公開記録サービスを新しく公開する場合です。外部クラウドの利用と有料の運用費を認めると仮定します。

  • 比較用の仮定です。会員が自分の記録と添付ファイルを保存するサービスを新しく作り、移すべき既存の会員・データ管理システムはありません。
  • 画面やサービスのルールを開発する人はいますが、サーバー障害・更新・復旧を継続して担当する人はいません。
  • 外部クラウドにデータを預けられ、顧客が継続して利用できるよう有料の運用費を確保できます。
この条件でのギット飯の結論

今回の二候補では、Appwrite Cloud の有料運用から検討します。PocketBase も会員・データ機能を提供しますが、このチームが担えないサーバー管理と更新の責任が残ります。個人データの公開範囲と復元対象は、アプリに合わせて決める必要があります。

そう選ぶ理由

  • この場面の分かれ目はログイン機能の有無より、誰がサーバーを運用するかです。Appwrite Cloud ではサーバー管理を任せられますが、PocketBase の公式の提供方法は自己運用です。
  • 常時アクセスが必要なため、Appwrite Free の休止条件も選択に含めます。有料運用を許容するという前提で Cloud を候補に残せますが、予算がなければこの結論も保留します。
引き受ける負担
代わりに利用料金と使用量の上限を受け入れる必要があります。画面・決済の連携・有料会員が使える範囲などのルールは自分で作ります。Appwrite を自己運用すればサーバー管理も自分の責任に戻るため、以下の結論は Cloud を選ぶ場合に限ります。 Appwrite の利用料金は Gitbap PRO+ の購読料とは別です。
ここは、いったん保留
継続して利用するサービスを無料プランだけで維持したい場合や、担当者なしで自己運用する場合は決定を保留します。Appwrite Free の一時停止の基準は利用者の訪問ではなく、Console での開発活動です。
02 · 同じ基準で読む

Appwrite × PocketBase 自前運用

どちらも会員・データ・ファイルの機能を自分のアプリに組み込む候補です。以下では同じ質問で Appwrite Cloud と自己運用の PocketBase を比較します。Appwrite の自己運用は Cloud と運用責任が異なります。

誰がサーバーを運用しますか?

Appwrite Cloud
Cloud では提供元がサーバーを管理します。自己運用を選ぶと更新・拡張・障害対応は自分の担当です。
PocketBase 自前運用
公式ホスティングはなく自己運用です。一つの実行ファイルで始められても、サーバーを稼働させ続けて管理する人が必要です。

自分の選択では仮定したチームでは、機能の数よりこの差が Appwrite Cloud を先に選ぶ理由です。

会員別の記録と添付ファイルを非公開にできますか?

Appwrite Cloud
データ・ファイルごとに許可する会員を指定できます。個別の権限を有効にし、保存先全体へ広すぎる許可を与えない設定が必要です。
PocketBase 自前運用
記録を読み書きできる条件を設定できます。ファイルは標準では URL が分かればアクセスできるため、非公開のファイルには保護設定と閲覧ルールが必要です。

自分の選択ではどちらも可能なので「個人データがある」だけで一方に決まりません。どちらもログインをつなぐだけでは保護は完成しません。

公開後も使い続けるには、何が必要ですか?

Appwrite Cloud
Free は7日連続で開発活動がなければ停止する場合があります。停止中は利用者がアクセスできないため、常時使うサービスは有料プランを前提に検討します。
PocketBase 自前運用
現在は 1.0 より前で、完全な後方互換性は保証されません。公式資料は、変更履歴の確認や時々の手動変更を引き受けない重要な本番サービスにはまだ推奨していません。

自分の選択ではこのチームでは無料かどうかより、停止や版の変更に対応できる条件が先です。有料 Cloud も無停止を実測・保証したという結論ではありません。

決済後の利用許可などの業務ルールは誰が作りますか?

Appwrite Cloud
自分で書いたコードを要求・イベント・予約時刻に実行する Functions を提供します。決済結果の確認や利用範囲の決定はそのコードで実装します。
PocketBase 自前運用
Go または JavaScript のコードでサーバーの動作を拡張します。管理型の関数実行サービスが別に付く方式ではなく、コードとサーバーを一緒に管理します。

自分の選択ではどちらも完成済みの会員事業や決済サービスを作ってはくれません。既存の業務コードがあるなら、実行環境が合うかも選択条件です。

誤削除からの復旧と継続費用はどうなりますか?

Appwrite Cloud
Cloud で利用者が設定するデータベースのバックアップ・復元は Pro 以上です。会員アカウントや添付ファイルも同じ方法で復元できるかは別途確認が必要です。プランと利用量に応じた費用も発生します。
PocketBase 自前運用
内蔵のバックアップ・復元はありますが、保管先と復旧運用は自分で決めます。サーバー・メール・保管の費用は残り、外部 S3 へ保存したファイルは内蔵バックアップに含まれません。

自分の選択ではCloud の利用料と自前サーバー料金だけでは、運用時間や復旧の費用が抜けます。実際の利用量が不明な今、どちらが安いかは決められません。

Appwrite を選ぶなら

新しい会員サービスを作る開発者はいるがサーバー運用者はおらず、管理型サービスの費用を払えるなら Appwrite Cloud を先に見ます。

PocketBase 自前運用 を選ぶなら

小さな自前サーバーを担当する人がいて、更新・復旧・版の変更を自分で扱い、シンプルな構成を望むなら PocketBase を検討します。

03 · 条件を変えて考える

こんな状況なら、結論が変わります

運用する人がいて、中断や更新対応を受け入れられる個人用・初期検証のサービスなら

PocketBase を先に検討します。

一つの実行ファイルにアカウント・データ管理がまとまり、小さな自前サーバーを構成しやすいからです。ただし、1.0 前の版変更に伴う手動の変更作業も引き受ける必要があります。

既に会員・データ・権限の機能が問題なく動いているなら

既存システムを維持し、不足する機能だけを比較します。

候補の基本機能があるというだけで移す必要はありません。解決したい不便が明確なら、アカウント・データ・業務コードを変更する理由が生まれます。

常時利用は必要なのに、継続的な運用費もサーバー担当も用意できないなら

どちらかにすぐ決めません。

Appwrite Free は開発活動がなければ一時停止する場合があり、PocketBase は運用する人が必要です。無料であることだけでは運用条件を満たせません。

データを外部クラウドへ預けられないなら

Appwrite Cloud の推薦を取り下げ、自己運用の候補を比較し直します。

Appwrite の自己運用と PocketBase が候補になります。どちらもサーバー・復旧の担当と保管場所の条件が先に必要なので、自動的に PocketBase とは決めません。

04 · まだ決められない部分

このことがわかると、もっと絞れます

ここでは答えを仮定していません。ご自身の状況と照らし合わせて読んでください。

既に使っている会員・データ管理システムはありますか?
確認すること

現在のログイン・データ保存ツールと変えたい不便を一つ書き出し、既存機能や設定で解決できるか確認します。

その後の選び方

既存機能で解決できるなら維持します。交換が必要なら、アカウント・データ・参照権限の移行範囲を決めてから比較し直します。

サーバーを担当する人はいて、一時停止や手動での更新を受け入れられますか?
確認すること

更新失敗やデータ削除時に復旧を担う人と、許容できる停止時間を書き出します。コードを書けることと運用を担当できることを分けて確認します。

その後の選び方

担当者がいなければ管理型の候補を優先します。担当者がいて停止・版変更への対応を許容できるなら PocketBase も残します。厳しい可用性保証が必要なら、この解説だけでは確定しません。

月の運用予算、想定利用量、復旧すべきデータの範囲はどの程度ですか?
確認すること

想定アクティブ会員数・月間保存量・転送量・メール数を現在の Cloud 料金と上限に当てはめます。自前運用はサーバー・メール・バックアップ費用と担当者の時間を加え、アカウント・記録・添付ファイルの復元方法を個別に確認します。

その後の選び方

予算内で必要な復元範囲を満たす候補を残します。費用や復元方法が未確認なら判断を保留します。導入・測定前に速度や最大処理量の優劣は確定しません。

使いどころがわかる解説

自分のアプリにログインと会員別のデータ保存を組み込みたいとき

Appwrite はアプリの裏側で本人確認・データ保存・アクセスの許可を担当する開発ツールです。会員が自分のメモを保存し、後から開くアプリに使えます。利用者が押すボタンやメモ画面は開発者が作ります。

01 · 自分の仕事に置き換える

こんなことが必要なときに

01

個人メモ

会員ごとに記録を残し、ほかの会員には見せたくない。

ログインした人と各メモの閲覧範囲を結び付け、個人データを管理します。

02

あとで読む一覧

保存した記事の題名と URL を、自分の一覧から探せるようにしたい。

会員別に題名と URL を保存できます。記事の自動読み取りや要約は別に作ります。

03

非公開の学習記録

今日学んだ内容や進み具合を会員別に残したい。

記録を保存し、誰が見られるかを決めます。カレンダー・進捗表示・学習の提案はアプリ側で作ります。

02 · 一つの場面をたどる

個人メモのアプリなら、こんな流れです

上の場面と以下の流れは、公式のログイン・個人データの例と取得・更新の文書をつないだ利用案です。完成アプリの実演ではなく、メモ画面を作って接続した場合を想定しています。

  1. ログインする

    利用者は
    登録済みのメールとパスワードを入力します。
    Appwrite は
    アカウントを確認し、ログイン状態を作ります。
    その結果
    アプリが成功の応答を受け、自分のメモ画面を表示します。
    この部分の公式例を見る ↓
  2. メモを保存する

    利用者は
    メモを書いて保存ボタンを押します。
    Appwrite は
    アプリから届いた内容と、この会員の読み取り・更新・削除の許可を保存します。
    その結果
    アプリに保存完了が表示され、後から開けるデータが残ります。
    この部分の公式例を見る ↓
  3. 後から開く

    利用者は
    後でログインし直し、自分のメモを開きます。
    Appwrite は
    アプリからの取得要求に応じ、アクセスが許可されたデータを返します。
    その結果
    アプリの画面で以前保存した内容を読み直せます。
  4. 内容を直す

    利用者は
    自分のメモを直して、もう一度保存します。
    Appwrite は
    更新の許可を確認して、保存済みの内容を書き換えます。
    その結果
    アプリが応答を受け、変更されたメモを画面に反映します。

利用者に見えるのは自分のメモ画面。その裏のログイン確認とデータ保存を Appwrite に任せる仕組みです。

03 · 役割を分ける

任せる部分と、自分で担う部分

Appwrite に任せる

  • 会員アカウントとログイン状態を管理します。
  • データを保存し、読み取りや更新を許可するか設定に従って判断します。

自分たちで準備・運用する

  • 登録・ログイン・メモ入力・一覧の画面を作り、それぞれの動作をつなぎます。
  • 題名・本文など保存する項目と公開範囲を決めます。公式の保存例は題名一つを入れる部分です。
  • 個人データが他の会員へ公開されないよう、一件ごとの権限と保存先全体の権限を合わせて設定します。
  • 写真・PDFのファイル権限を別に設定し、記録削除時のファイル処理とバックアップ復元を検証します。
04 · 始める前に知っておくこと

自分に合うかは、ここで判断

必要な開発
Web やモバイルの画面を作り、Appwrite の機能をコードでつなぐ人が必要です。すぐ使えるメモアプリが欲しいなら、完成済みのサービスが適しています。
クラウドで始める
Appwrite Cloud を使えば Appwrite サーバーのインストールは省けます。サービス内に自分のアプリ用プロジェクトとデータの保存先を作る必要はあります。
自分でサーバーを運用
自分でインストールする方法もあります。実行環境の Docker とサーバーを用意し、更新やデータ保全などの運用も自分で担当します。

まず小さな記録アプリでログイン・権限・保存・復元をつなぎます。別の会員の記録と写真を開けないことまで確かめてから、機能を広げます。

さらに詳しく:原作の読み方と確認事項

動画の要点はログインとアクセス権限を分けることです。Authが誰からの要求かを確認し、データベースとStorageが設定された権限に従って記録とファイルを提供します。画面・業務ルール・公開範囲と復元方法はアプリを作るチームが決めます。

01 · 原作の読み方

この部分を見ると、判断が変わります

↑ 原本 ① 登録済みの会員がログインする

setEndpoint・setProject → createEmailPasswordSession

接続先とプロジェクトを選び、メール・パスワードから以降の要求で使うログイン状態を作ります。この結果は「全データへアクセス可能」という権限ではありません。

自分の仕事では
ログイン後の画面とメモ参照の許可条件を分けます。誤ったプロジェクト接続と正常ログイン後の権限拒否は、表示が似ても直す設定が異なります。
この例だけではわからないこと
原本は説明用のアカウント値によるログイン呼び出しです。登録・パスワード回復・期限切れ対応まで完成した画面ではありません。
↑ 原本 ② この会員だけが開けるデータを保存する

Permission.read/update/delete(Role.user(...)) と Row Security

この行の参照・更新・削除を特定会員へ与えます。公式文書は行単位権限を有効にする Row Security、テーブルの作成許可、全体の参照・更新・削除を許可しない設定を組み合わせます。

自分の仕事では
テーブルを保管棚、行を個別メモと読むと整理できます。棚全体を公開し、一件だけ読者を絞っても意図した非公開方針にはなりません。作成権限と作成後の参照権限も別欄にします。
この例だけではわからないこと
抜粋は tablesDB と ID が準備済みの場面で、完全な導入コードではありません。サーバー API キーの権限は別境界で、ブラウザーの会員権限と混同しません。
02 · 読むだけで終わらせない

ログインの有無だけでなくデータ所有者を基準に三ユーザーの権限表を作ります。

以下は自分の条件に照らして確認するための手順です。ギット飯による実行結果ではありません。

  1. メモ A の所有者・別会員・未ログインを想定し、各自の参照・更新・削除の期待値を書きます。

    残すもの所有者だけに三操作を許す九マスの表と、公開資料の別方針。

  2. 公式 Row Security の説明と照合し、テーブル作成・全体権限・行権限を別々に書きます。

    残すもの全体の読み取りが個人メモの方針を広げるか分かる権限設定一覧。

  3. 例の接続先・プロジェクト ID・会員 ID とサーバー専用キーの供給場所を分けます。

    残すものブラウザーに置く値とサーバー専用秘密値の配置表、実装後に確認する拒否応答一覧。

次へ進める条件

権限表の全マスが設定項目へつながれば、試験用アカウントとメモで実アクセス確認を計画します。

立ち止まる条件

テーブルの広い許可が残る、またはサーバーキーをブラウザーへ置く設計なら公開しません。

判断の根拠と確認項目を詳しく読む

ログイン成功とデータ参照は別段階

公式資料で確認
公式文書はアカウントのセッション生成と行ごとの Permission・Role を別の例で説明します。
ギット飯の解釈
ログインが動くだけでは会員別データ保護は完了しません。データごとに所有者と共有範囲を決めます。
導入前の判断
本人・別の会員・未ログインの三状態で、読み取りと更新をそれぞれ確認します。

広いテーブル権限を与えすぎない

公式資料で確認
公式の個人行ガイドは Row Security の有効化、テーブルの作成許可、全体への読み取り・更新・削除権限を与えないことを組み合わせています。
ギット飯の解釈
コードの一部分だけをコピーすると、上位の権限設定によって意図した分離にならない場合があります。
導入前の判断
個人資料と公開資料のテーブル方針を分け、サーバー用 API キーをブラウザーコードに入れないようにします。

記録を保護しても写真は別に確認する

公式資料で確認
Storageにはバケット全体と個別ファイルの権限があります。どちらかで許可するとアクセスでき、個別ファイル権限はFile Securityを有効にして適用します。
ギット飯の解釈
非公開の記録に写真IDを付けても、写真まで同じ方針で保護されるわけではありません。ファイルの公開範囲も決めます。
導入前の判断
会員Aで記録と写真を作り、Bと未ログイン状態でそれぞれ開いて確認します。参照だけでなく更新・削除、記録削除後の添付ファイル処理も確かめます。

向いている場面

  • ログイン・ストレージ・データ API をまとめて使うアプリ
  • 会員別の読み書き権限を設計できるチーム

別の選択肢も比べたい場面

  • SDK 接続だけでアクセス制御が完成すると期待する場合
  • データの公開範囲や会員権限を決めず、そのまま公開したい場合

試す前に確認すること

  • SDK・サーバー版と例のAPIの互換性を確認
  • Row Securityとテーブル・行権限を一緒に確認
  • File Securityとバケット・ファイル権限を一緒に確認
  • 本人・別の会員・未ログインで記録とファイルへのアクセスを検証
  • アカウント・記録・ファイルを復元する方法と運用担当を決める
どなたでも閲覧できます

この流れの根拠になった公式例

画面や使用例は公式資料から。説明と活用案をギット飯が加えました。

01原本 ① 登録済みの会員がログインする

公式例は接続するアプリを指定し、メールとパスワードが合えばログイン状態を作ります。画面のログインボタンからつなぐ処理に当たります。下のアカウント値は説明用で、登録画面やログイン画面自体を作るコードではありません。

ギット飯の活用提案

会員が自分のデータを見る前に、本人を確認するとき。

公式コードを開く
公式資料の使用例
import { Client, Account } from "appwrite";

const client = new Client()
    .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
    .setProject('<YOUR_PROJECT_ID>'); // Your project ID

const account = new Account(client);

const result = await account.createEmailPasswordSession({
    email: 'email@example.com',
    password: 'password'
});

console.log(result);
使う流れに戻る ↑

appwrite contributors · BSD-3-Clause

元の資料を見る ↗

02原本 ② この会員だけが開けるデータを保存する

題名一つを保存し、特定の会員へ読み取り・更新・削除を許可する公式コードです。個人メモや保存一覧に応用できます。本人だけに見せるには保存先全体を全員に開放せず、一件ごとの権限を適用する Row Security も有効にします。

ギット飯の活用提案

同じアプリでも、会員ごとに自分の記録だけを見せたいとき。

公式コードを開く
公式資料の使用例
let promise = tablesDB.createRow({
    databaseId: '<DATABASE_ID>',
    tableId: '<TABLE_ID>',
    rowId: ID.unique(),
    data: { 'title': 'My Private Row' },
    permissions: [
        Permission.read(Role.user('<USER_ID>')),    // Only this user can read
        Permission.update(Role.user('<USER_ID>')),  // Only this user can update
        Permission.delete(Role.user('<USER_ID>'))   // Only this user can delete
    ]
});
使う流れに戻る ↑

appwrite contributors · BSD-3-Clause

元の資料を見る ↗

選んだ理由:ログインとアクセス権限を分け、Cloud・自己運用の責任と2アカウントでの確認をつなげます。公式画面は理解を助ける別の例として残しています。

出典と確認範囲

公式資料を読み解いた編集記事です。新しい動作確認や導入効果の測定を行った記録ではありません。原作の画面内の言語・数値は保持しています。

作者
appwrite contributors
確認日
2026-10-15T03:06:43.206800+00:00
ライセンス
BSD-3-Clause ↗