【问题标题】:react-native firebase how to remove specific nodes by id?react-native firebase如何通过id删除特定节点?
【发布时间】:2020-01-18 03:50:37
【问题描述】:

我正在尝试通过 firebase 实时数据库中的 id 删除节点,但我找不到任何文档。我在这里查看了基本文档: https://firebase.google.com/docs/database/web/read-and-write#delete_data

但是关于删除的小标题只是说使用 remove() 方法?如果我只想删除一个节点的几个子节点之一,我不确定该怎么做?

这是我目前的尝试:


deleteNotes = noteId => {
    const uId = firebase.auth().currentUser.uid
    console.log("logging note id", noteId);
    let userRef = firebase.database().ref('Users/'+uId+'/Notes');  //where all a users notes are stored
    userRef.remove().then(()=>{
      console.log("successfully removed reference")
    })
  };

我应该做类似 userRef.child(id).remove() 或类似的链吗?我所有推送的笔记都有自己的 id 作为键值对,但我是否需要做其他事情才能在 firebase 实时数据库中为它们生成键?

如果可能的话,将我指向一个好的参考文档也很棒。

谢谢!

【问题讨论】:

    标签: javascript react-native firebase-realtime-database


    【解决方案1】:

    您应该调用remove() 引用您要删除的确切路径。所以如果你想删除/Users/uid123/Notes,你可以这样做:

    firebase.database().ref('Users/uid123/Notes').remove();
    firebase.database().ref('Users').child('uid123').child('Notes').remove();
    firebase.database().ref('Users').child('uid123/Notes').remove();
    

    如果你想删除一个特定的注释,那就是:

    firebase.database().ref('Users/uid123/Notes/idOfTheNote').remove();
    

    如果您想删除一些注释但留下其他注释,您可以使用多位置更新:

    var updates = {};
    updates['idOfTheNote1'] = null;
    updates['idOfTheNote2'] = null;
    firebase.database().ref('Users/uid123/Notes').update(updates);
    

    【讨论】:

      猜你喜欢
      • 2019-10-29
      • 1970-01-01
      • 2019-09-05
      • 1970-01-01
      • 2020-01-29
      • 1970-01-01
      • 1970-01-01
      • 2012-03-13
      • 1970-01-01
      相关资源
      最近更新 更多