firebase删除的项目属于某个文件夹或类别
这是我的第一个问题。如果我犯了错误,请从一开始就道歉。我是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
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.为什么消息存储在单独的节点中?如果是这样,您是否有理由不能将邮件存储在数据库/文件夹/邮件中?