Firebase/JSON数据库结构,以引用数据库其他部分中的数据UUID



更新

在得到答案后,我使用了fileUID:true,下面是如何使用AngularFire2和typescript实现动态密钥。它可能对一些人有用:

this.af.database.object(`users/${userID}/submitted-files/`).update({
[nextFileKey]: true
});

我需要在文件中创建对userUUID的反向引用吗?

原始问题

这是我目前的数据库结构。这个问题适用于我在Firebase的案例,但任何JSON数据库看起来都是一样的。

{
"users" : {
"0gIo3Ak2EFbLDSSCMSEpciuWnB83" : {
"email" : "username@example.com",
"hasAcceptedTerms" : true,
"state" : {
"isProfileComplete" : true
},
"submitted-files": { // FILES REFERENCES WILL GO THERE }
}
}
}

我希望我的用户能够上传一些文件,这些文件将由外部观察者脚本进行审查和批准。在文件上传时,我想在Firebase数据库中创建一个新的files区域,以获得以下结构:

{
"files" : {
"-K_jG4usPu_4yLED7j8L" : {
"fileUUID" : "448f4sd8f4sd4fsdf494ds84f98sd4f",
"filename" : "document.pdf"
"user" : "0gIo3Ak2EFbLDSSCMSEpciuWnB83"
}
},
"users" : {
"0gIo3Ak2EFbLDSSCMSEpciuWnB83" : {
"email" : "username@example.com",
"hasAcceptedTerms" : true,
"state" : {
"isProfileComplete" : true
},
"submitted-files": { // FILES REFERENCES WILL GO THERE }
}
}
}

现在的问题是链接user/submitted-files路径中的文件UUID。

在完美的世界里,我会把这个添加到用户数据中:

"submitted-files" : {
"-K_jG4usPu_4yLED7j8L",
"SecondFileUUID"
"ThirdFileUUID"
}

但是,由于我必须输入一个键/值对作为JSON数据库,我如何在没有任何其他非必需信息的情况下,在我的用户部分列表中有效地输入所有提交的文件UUID?

我是否必须复制用户路径中的整个文件信息才能获得

"users" : {
"0gIo3DQ9EFbLDSSCMSEpciuWnB83" : {
...
"submitted-files" : {
"-K_jG4usPu_4yLED7j8L" : {
"fileUUID" : "448f4sd8f4sd4fsdf494ds84f98sd4f",
"filename" : "document.pdf"
"user" : "0gIo3Ak2EFbLDSSCMSEpciuWnB83"
}
}
}
}

或者有没有办法只在user/submitted-files路径中输入对文件UUID的引用

我想要关于以正确的"JSON方式"良好实践构建数据库的建议。

您非常接近:

"submitted-files" : {
"-K_jG4usPu_4yLED7j8L",
"SecondFileUUID"
"ThirdFileUUID"
}

只需给它们赋值true即可:

"submitted-files" : {
"-K_jG4usPu_4yLED7j8L": true,
"SecondFileUUID": true,
"ThirdFileUUID": true
}

他们在一些教程中对此进行了解释。

相关内容

  • 没有找到相关文章

最新更新