Javascript 使用未知目录中的Firebase函数删除Firebase Realtimedatabase中的用户ID

Javascript 使用未知目录中的Firebase函数删除Firebase Realtimedatabase中的用户ID,javascript,firebase,firebase-realtime-database,google-cloud-functions,Javascript,Firebase,Firebase Realtime Database,Google Cloud Functions,您好,我正在android studio中编写一个应用程序,当用户被删除时,我使用firebase函数删除所有用户数据。在照片中,当“用户”中的“asdf”被删除时,ID“asdf”应该到处被删除。以下代码工作正常,但仅当ID不在未知ID的目录中时 exports.deleteAdd1 = functions.database.ref('/USER/{userId}').onDelete((snap, context) => { const userId = context.pa

您好,我正在android studio中编写一个应用程序,当用户被删除时,我使用firebase函数删除所有用户数据。在照片中,当“用户”中的“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”未知) 请帮忙

Firebase声明数据存储为JSON树,这意味着要检索数据节点,您需要提供它所在的路径,并且操作将返回您请求的每个子节点

正如Doug所指出的,有一些选项可供您选择:

  • 你知道所有的确切位置。为了实现这一点,您可以将所有与ID相关的位置存储在单独的文档中,以获得一种1对多关系,或者使用某种语义命名(如果适用于直接知道位置)
  • 查询,然后迭代,然后删除过程。这不需要添加/更改数据库结构,尽管当请求的节点包含大量数据时,这可能会很慢
此外,您可能还想看看这一点,特别是关于更新非规范化数据的策略。

您必须1)知道每个要更新的确切位置,或2)查询所有这些位置,迭代它们,然后逐个删除它们。也许2号是适合你的。