0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Firebase Realtime Databaseで配列のデータを削除する(Vue.js)

Last updated at Posted at 2021-12-14

#経緯
とある案件でFirebase Realtime Databaseを使用していたのですが、登録や取得は問題なくできたんですが削除だけがどうしてもわからず教えていただきました。
忘れないようにメモします。

#環境
Vue.js: 2.6.14
firebase: 8.10.0

#前提
データはこんな感じの配列です

hogehoge-default-rtdb
  - items
    - 0
        - itemCode: "1"
        - itemName: "あいてむ1"
        - などなど
    - 1
        - itemCode: "2"
        - itemName: "あいてむ2"
    - 2
        - itemCode: "3"
        - itemName: "あいてむ3"

itemCodeは一意です

#やりかた

async deleteItem(itemCode) {
  let targetIndex = "";
  // indexの取得
  await firebase
    .database()
    .ref("items")  // itemsを取得する
    .orderByChild("itemCode") // itemCodeを持つ要素を並び替え
    .equalTo(itemCode) // itemCodeがoderByChildのitemCodeと一致するものを検索する
    .once("value", (snapshot) => {
      targetIndex = Object.keys(snapshot.val())[0]; // 削除対象のindexを取得
    });

  //削除の実施
  await firebase
    .database()
    .ref("items")
    .child(targetIndex) // 取得した削除対象のindexで検索
    .set(null) // 対象のデータをnullにする
    .then(() => {
      alert("消せたよん")
    });
    

できれば1処理で終わらせたいけどとりあえずこんな感じでできました。
もしもっといい書き方をご存知の方いらっしゃいましたら教えてください。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?