サンプル3(DELETEサンプル)

NCMB (ニフクラ mobile backend) のDELETEメソッドのサンプルを、Firebase FunctionsとFirebase Firestoreを使って実装する方法について解説しています。

概要

  • 目的: NCMBでのDELETEメソッドを使用したデータ削除のサンプルを、Firebase FunctionsとFirestoreを用いて実装。

  • 動作: Firestoreの Item コレクションから指定されたIDのドキュメントを削除。

Firebase Functionsのコード

機能

  • データ削除: 指定されたIDのドキュメントをFirestoreから削除。

コード例

const delete_data = functions.https.onCall(async (data, context) => {
  const body = data.body; 
  const id = body.id; // 削除するID
  return admin.firestore().collection('Item').doc(id).delete()
    .then(_ => {
      return { message: `Document ${id} successfully deleted` };
    })
    .catch(error => {
      throw new functions.https.HttpsError('internal', `Error deleting document: ${error}`);
    });
};

解説

  • IDによる削除:

    • body.id で指定されたIDのドキュメントを削除します。

  • セキュリティ:

    • このサンプルではユーザー認証を行っていないため、IDがわかれば誰でも削除可能です。POSTサンプルでの認証チェックのようなセキュリティ対策を講じるか、Firebaseのルールを設定して不正な操作を防ぐことが推奨されます。


アプリ側のコード

機能

  • 指定したIDのドキュメントを削除する delete_data 関数を呼び出し。

コード例

    const deleteId = document.querySelector('#deleteId').value;
    log(`${deleteId}`);
    const delete_data = httpsCallable(functions, 'delete_data');
    delete_data({
      'body' : {
        'id': deleteId
      }
    }).then((result) => {
      log(result.data);
    }).catch((error) => {
      log(error);
    });
  });

解説

  • ドキュメントIDの指定:

    • body.id に削除したいドキュメントのIDを指定し、Firebase Functionsの delete_data 関数を呼び出して削除を実行します。

最終更新