【问题标题】:Firebase Remove with Javascript使用 Javascript 删除 Firebase
【发布时间】:2021-01-07 15:24:07
【问题描述】:

所以我有这个代码:

firebase.database().ref('putninalog/'+ NadiiIndeksNaloga()).remove();

这将删除 etc. [0] 以及连接到数据库中该索引的所有数据(确切的数字无关紧要)。 当我删除该索引时,如何将所有其他索引更新为从 0 开始。

例子:

[0] [1] [2] [3]

我删除:[0]

保持不变:

[1] [2] [3]

我想要这个:

[0] [1] [2]

【问题讨论】:

    标签: javascript html jquery firebase firebase-realtime-database


    【解决方案1】:

    无法在一次操作中删除索引中的项目,然后更新所有后续索引。您必须:

    1. 将整个父节点读入您的应用程序代码。
    2. 从应用程序代码中的数组中删除该项。
    3. 将整个数组写回数据库。

    如果其他用户可能同时在操作数组,您必须这样做using a transaction 以防止更新相互冲突。

    要了解有关在 Firebase 中处理数据列表的更好方法的更多信息,我建议阅读 appending items to a list of data 上的文档和博客文章 Best Practices: Arrays in Firebase

    【讨论】:

    • 感谢您的回答!我试图让我的代码更简单。但是那时没有办法做到这一点。我想使用数组索引并将其与数据库中的索引进行比较。
    • 不必处理此问题的最简单方法是不使用顺序数字/数组索引,而是使用 Firebase push() 操作为您生成 ID。
    【解决方案2】:

    我做了一些挖掘,但我无法按照我想要的方式进行。感谢弗兰克的回答,我意识到了这一点。 我这样做是为了找到每个项目的索引:

      ref.on('value',function(snap)
    {
      snap.forEach(function(child)
    {
      console.log(child.ref_.path.pieces_[1]); // This will return mentioned [index] from database
    
    });
    });
    

    【讨论】:

      猜你喜欢
      • 2017-10-14
      • 1970-01-01
      • 1970-01-01
      • 2016-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多