Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
firebase删除的项目属于某个文件夹或类别_Firebase_React Native_Firebase Realtime Database - Fatal编程技术网

firebase删除的项目属于某个文件夹或类别

firebase删除的项目属于某个文件夹或类别,firebase,react-native,firebase-realtime-database,Firebase,React Native,Firebase Realtime Database,这是我的第一个问题。如果我犯了错误,请从一开始就道歉。我是firebase的新手,反应自然。我搜遍了,到处都找不到我的答案 我列了一张待办事项清单。我搜索了数据库的结构,了解到结构必须是扁平的,我制作了一个这样的结构: 数据结构: database { folders: { folder_name: folder1, messages: { message1: true, (uid of thi

这是我的第一个问题。如果我犯了错误,请从一开始就道歉。我是firebase的新手,反应自然。我搜遍了,到处都找不到我的答案

我列了一张待办事项清单。我搜索了数据库的结构,了解到结构必须是扁平的,我制作了一个这样的结构:

数据结构:

database {
    folders: {
            folder_name: folder1,
            messages: {
                      message1: true, (uid of this message)
                      message2: true  (uid of this message)
                      }
             }

    messages: {
            message1 {
              message_content: this is a to do item1,
              time: 1212221321,
              folder: folder1 (uid of this folder)  
              }
                     }

            message2 {
              message_content: this is a to do item2,
              time: 1212221321,
              folder: folder1 (uid of this folder)  
              }

            message3 {
              message_content: this is a to do item3,
              time: 1212221321,
              folder: folder2 (this message is in another folder)  
              }
              ......
          }
}
如您所见,当我在文件夹中添加邮件时,文件夹中包含邮件uid号。每个邮件都包含一个对象属性,即文件夹uid(此邮件所在的文件夹)

问题:

1:这种结构类型正确吗?还是初学者应该使用另一种结构

2:嗯,我计划在用户删除邮件时将文件夹中的邮件id设置为false(klasorler)。但我不知道当用户删除文件夹时我该怎么做。(在这种情况下,删除文件夹1..如果是文件夹1,我必须只删除message1和message2)我应该获取文件夹中的所有邮件id并启动循环并逐个删除邮件吗?(我的意思是反应本机端的循环)。。。或者在firebase中有没有更简短、更智能的方法来使用firebase方法


我希望我能很好地解释自己:)

一般来说,最好在问题中以文本形式包含Firebase结构的片段,请不要使用图像或链接。如果要删除节点的子节点,只需删除删除所有子节点的父节点即可,在这种情况下,将父节点设置为false也将覆盖所有子节点。只要结构是“正确的”,只有在编写了一些代码后才能确定它是否有效。好的,我编辑了问题并添加了数据结构的文本。很抱歉。但是我可以删除一个节点。在这个问题上,;我在问这个问题;文件夹1中有两封邮件。如果有人删除文件夹1,如何删除messages对象中的message1和message2?(或许多消息属于folder1)…我必须循环还是以其他方式?我必须先删除messages对象First(属于folder1)中的消息,然后删除folder1?同样的情况也适用。I您设置messages=“”,例如,这将删除所有子消息。这实际上将完全删除messages节点,因为节点不能为“”。如果要保留节点,请将messages=false,这也将删除所有子节点。感谢您的回复…为什么要将消息设置为false或空字符串?邮件对象不是文件夹的子对象。消息对象和文件夹对象是同级对象。在本例中,这两条消息是相对于folder1的,但认为还有第三条消息,它的引用是folder2。当我删除folder1时,我必须找到一种方法,只删除与folder1相关的消息。编辑:我编辑了问题。您有两个节点,其键为messages 1)database/folders/messages和2)database/messages,这是混淆的地方。我现在明白了。。。删除数据库/文件夹/邮件后,您需要从数据库/邮件中删除相应的邮件节点。文件夹和邮件是否为一对多关系?i、 e.为什么消息存储在单独的节点中?如果是这样,您是否有理由不能将邮件存储在数据库/文件夹/邮件中?