【问题标题】:angular firebase realtime database update numeric index on item removalangular firebase实时数据库更新项目删除的数字索引
【发布时间】:2021-04-07 14:18:50
【问题描述】:

我正在尝试在点击按钮时从我的 firebase 数据中删除特定索引。

所以我最初的 firebase 数据库如下:

删除索引 1 中的项目后,我有以下 firebase db:

今天,这个索引使我的应用程序崩溃。我希望在删除项目时将索引 2 更新为 1(在这种情况下)

这是我删除项目的代码:

firebase.database().ref('/books/').orderByChild('id').equalTo(book.id).once("value", snapshot => {
        var promise = [];
        snapshot.forEach(function(child) {
          promise.push(child.ref.remove());
        });
          Promise.all(promise)
      });

【问题讨论】:

    标签: angular firebase firebase-realtime-database


    【解决方案1】:

    这是预期的行为:在 Firebase 中,无法在不更新整个数组的情况下从数组中删除单个项目。

    所以你必须:

    1. 在 JavaScript 中将整个节点读入数组。
    2. 从该数组中删除您想要的项目,然后将为剩余项目生成正确的新索引。
    3. 将整个数组再次写回数据库。

    【讨论】:

    • 完美,我试过你的方法,完美!!关于已解决问题的更精确之处在于,正如弗兰克所说,我将一个包含整个节点的数组放入其中,然后我请求我的 Firebase 获取我想要删除的数据的索引。使用此索引,我拼接我的数组以在本地将其删除。然后我只需要将我的阵列推到火力基地,神奇就在这里!!!
    猜你喜欢
    • 1970-01-01
    • 2016-11-28
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-18
    相关资源
    最近更新 更多