在未知目录中使用Firebase函数删除Firebase Realtime数据库中的userID

时间:2019-12-18 23:20:44

标签: javascript firebase firebase-realtime-database google-cloud-functions

enter image description here

你好,我正在android studio中编写一个应用程序,当用户被删除时,我使用firebase函数删除所有用户数据。在照片中,当“ USER”中的“ asdf”被删除时,ID“ asdf”应随处删除。以下代码可以正常工作,但前提是该ID在未知ID的目录中不存在。

exports.deleteAdd1 = functions.database.ref('/USER/{userId}').onDelete((snap, context) => {

    const userId = context.params.userId;

    return admin.database().ref("/Add").child(userId).remove();
});

我真的不知道如何删除“添加”下的“ asdf”和另一个ID ...就像图片中的(ID“ 5wIddHUoJy”未知) 请帮忙!

1 个答案:

答案 0 :(得分:0)

Firebase documentation指出数据存储为JSON树,这意味着要检索数据节点,您需要提供数据所在的路径,并且该操作将返回该数据节点的每个子节点。您要的。

正如道格指出的那样,有一些可供选择的选择:

  • 您知道所有确切的位置。为此,您可以将所有与ID相关的位置存储在一个单独的文档中以获得一种一对多的关系,或者使用某种语义命名(如果适用于直接知道位置的话)。
  • 查询然后迭代然后删除程序。不需要添加/更改数据库结构,尽管当请求的节点包含大量数据时它可能会很慢。

此外,您可能想看看本thread,尤其是本link,了解有关更新非规范化数据的策略。