Firebase>>用户收藏列表

时间:2018-01-02 21:29:15

标签: javascript jquery firebase firebase-realtime-database

我的应用程序需要一点帮助。我不是要求提供讲义,而是要求从哪里开始。基本的想法是登录用户能够收藏视频,并在登录时保持这些视频。

我的应用使用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以外的任何内容,所以我希望我能走上正轨。任何帮助赞赏。谢谢! :)

2 个答案:

答案 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代码块中调用的内容。

祝你好运并坚持下去。