我的应用程序需要一点帮助。我不是要求提供讲义,而是要求从哪里开始。基本的想法是登录用户能够收藏视频,并在登录时保持这些视频。
我的应用使用YouTube API(播放列表项)在我的应用中显示来自公共播放列表的视频。我使用firebase auth注册和登录用户,但我还没有实现RTD。这是我在构建数据时需要一些帮助的地方。组织我的应用程序。
我不希望默认情况下为每个用户创建收藏列表,也不想存储错误值并且必须循环遍历它们。如果用户请求这样做,我只想设置一个收藏夹列表,并且值为true。我对构建数据的建议持开放态度,但我正在考虑这样简单的事情:
"favorites": {
"John Doe": {
"video1ID": true,
"video2ID": true,
}
}
视频包含在使用API响应中的.each函数的卡片中。这些卡中包含了#34;最爱"切换开关,我希望用户能够切换并将喜爱的视频添加到他们的列表中。
YouTube在其JSON响应中提供了视频ID。我当时认为为该视频ID分配一个布尔值可以完成工作,但我不知道从哪里开始。
类似的东西:
function writeFavoritesList (name, videoID, toggleValue) {
firebase.database().ref('favorites/' + userId).set({
name: displayName,
videoID: videoID,
toggleValue: true
});
}
我非常喜欢WordPress以外的任何内容,所以我希望我能走上正轨。任何帮助赞赏。谢谢! :)
答案 0 :(得分:1)
看起来很棒。如果这是另一个数据库,你可以考虑将视频ID存储在一个数组中,但这就是firebase RealTime数据库,你可以用你已经拥有的对象做得更好。
如果您打算对喜爱的视频进行排序,可以稍微修改您的结构以利用RTDs push()密钥生成。为此,您可以使用firebase的push()密钥生成密钥,而不是将密钥设置为videoID,将值设置为布尔状态,并将值设为videoID。 " push()生成的唯一键按当前时间排序,因此生成的项列表将按时间顺序排序。密钥也被设计成不可思议的(它们包含72个随机的熵)。"
"favorites": {
"uid1": {
"uniqueKey1": videoID1,
"uniqueKey2": videoID2,
}
}
要生成push()键,请使用:const key = firebase.database().ref().push().key
。
更多信息:https://firebase.google.com/docs/reference/js/firebase.database.Reference#push
答案 1 :(得分:0)
看到你的Guru帖子。我认为你学习的最好方法是深入研究文档并自己解决这个问题。如果您真的致力于学习这些东西,那么让别人为您编写代码就是一种伤害。
我从GCP(Google云端平台)云端火灾文档开始,并完整阅读概念部分: https://cloud.google.com/firestore/docs/concepts
firebase站点反映了GCP文档的部分内容,但也涵盖了客户端实现: https://firebase.google.com/docs/firestore/
要充分利用这些文档,请使用左侧的导航侧边栏深入了解所有各种Cloud Firestore主题。他们将介绍如何构建数据库并提供示例代码供您分析和使用。
您会看到非常多的条款文档和收藏集。 文档有点等同于JSON对象。 集合是一份文件清单;类似于JSON对象的数组。但事情变得有趣了; 文档可以参考收藏(又名子收藏):
所以我会按如下方式构建你的数据库:
创建用户集合
每当新用户登录您的应用时,请创建用户文档并将其添加到用户集合中。
用户首次选择收藏的视频时,会创建收藏夹集合并将其添加到用户文档中;然后将收藏文档添加到此用户的收藏夹集合中
有一个Javascript / Web客户端(您似乎已经从我在Guru上提供的repo链接中看到的内容中加载了它)。以下是它的参考文档: https://firebase.google.com/docs/reference/js/firebase.firestore 这些参考文档中定义的类,方法和属性是您在jquery代码块中调用的内容。
祝你好运并坚持下去。