【问题标题】:Firebase multipath delete with orderByChild()使用 orderByChild() 删除 Firebase 多路径
【发布时间】:2019-07-23 10:35:13
【问题描述】:

基本上,当用户删除他们的帐户时,我会尝试清理 RTDB 中的所有数据。

在我必须处理需要使用 orderByChild 访问它们的几个节点之前,这没有问题。这可以在原子/多路径更新中完成吗?

我尝试过像这样内联:

      exports.removeUserFromDatabase = functions.auth.user()
          .onDelete(function(user, context) {
              // Get the uid of the deleted user.
              var uid = user.uid;

              const deleteUserData = {};
              deleteUserData[`users/${uid}`] = null;
              deleteUserData[`feed/${uid}`] = null;
              deleteUserData[`friends/${uid}`] = null;

                //THIS IS WHERE I NEED TO USE ORDERBYCHILD() TO ACCESS NODE
                deleteUserData[admin.database().ref('/friends').orderByChild(uid)] = null;

              deleteUserData[`profileThumbs/${uid}`] = null;
              deleteUserData[`hasUnreadMsg/${uid}`] = null;
              deleteUserData[`userChatRooms/${uid}`] = null;
              deleteUserData[`userLikedPosts/${uid}`] = null;
              deleteUserData[`userLikedStrains/${uid}`] = null;
              deleteUserData[`userLikedStrains/${uid}`] = null;

              admin.database().ref().update(deleteUserData)
      });

除了我尝试使用 orderByChild() 的地方之外,所有内容都会被删除。似乎没有什么(我能找到)关于这个。

我很感激这方面的一些指导!

干杯。

【问题讨论】:

    标签: node.js firebase firebase-realtime-database firebase-admin


    【解决方案1】:

    要从 Firebase 实时数据库中删除节点,您需要知道其完整的准确路径。不支持 删除查询 的概念,您将条件传递给数据库的删除操作。

    如果要删除/friends的所有在某个属性中具有某个值的子节点,则首先需要执行查询,然后删除所有生成的子节点:

    admin.database().ref('/friends').orderByChild("uid").equalTo(uid)
         .once("value").then((friendsSnapshot) => {
             friendsSnapshot.forEach((friendSnapshot) => {
                 deleteUserData[`/friends/${friendSnapshot.key}`] = null;
             });
             admin.database().ref().update(deleteUserData)
         })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-04
      • 2017-08-22
      • 2020-12-26
      • 2020-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多