0

我想创建一个应用程序,任何人都可以创建一个集线器。创建集线器的人现在是集线器的管理员。他可以搜索YouTube视频并将其添加到播放列表中。其他用户可以搜索不同的集线器并连接到它,他们将看到由管理员创建的同一个播放列表,同一视频正在连接到同一个集线器的所有设备上播放。事情是有一个投票系统,用户可以投票选择特定的在播放视频,最高票的视频播放下一如何让设备连接到其中一个设备充当管理员的多个设备?

感谢的是我想用火力来实现这一点。任何人都可以指导我如何实现这一点?我知道播放列表必须发送到其他用户也可以看到的数据库。我只需要知道如何实施它的步骤或想法,任何链接或建议或其他选择是高度赞赏?

+0

什么是集线器? – greenapps

+0

它只是应用程序中的一个概念。这就像创建一个组,其中创建者是admin – Abhinav422

+0

你应该告诉更多。谈到这一点。不明白一个字。 – greenapps

回答

1

当管理员创建一个HUB,你需要创建:

1. AdminHubDB : 
    -$hubId1 : 
     - adminId : $userid1 
    -$hubId2 : 
     - adminId : $userid2 

2. MemberHubDB : 
    -$hubId1 : 
     - $userid1 : true 
    -$hubId2 : 
     - $userid1 : true 
     - $userid2 : true 

3. HubJoinedDB : 
    -$userId1 : 
      - $hubId1 : true 
      - $hubId2 : true 
    -$userId2 : 
      - $hubid2 : true 

4. PlayListDB : 
    -$hubId1 : 
      - $videoId1 : 
       - videoUrl : https://www.youtube.com/watch?v=[SOMEID] 
       - voteCount : 2 
      - $videoId2 : 
       - videoUrl : https://www.youtube.com/watch?v=[SOMEID] 
       - voteCount : 1 
    -$hubId2 : 
      - $videoId3 : 
       - videoUrl : https://www.youtube.com/watch?v=[SOMEID] 
       - voteCount : 5 
      - $videoId4 : 
       - videoUrl : https://www.youtube.com/watch?v=[SOMEID] 
       - voteCount : 10 

出于安全目的,你需要指定一些规则:

  1. 只有轮毂的管理员可以写playlistDB
  2. 只有中心的会员可以投票给某些视频

这里的规则:

{ 
    "rules": { 
    "PlayListDB": { 
     ".read": "auth !== null", 
     "$hubId": { 
     ".write": "root.child('AdminHubDB/'+$hubId+'/adminId'+'/'+auth.uid).exists()", 
     "$videoId" :{ 
      "voteCount" :{ 
      ".write" : "root.child('MemberHubDB/'+$hubId+'/'+auth.uid).exists()" 
      } 
     } 
     } 
    } 

    } 
} 

如果父母的规则等于true,那么如果孩子的规则为false,它将忽略孩子的规则,事件。

但如果父母的规则等于假的,它会继续检查孩子的规则。

而且,当您更新voteCount时,请确保您使用Firebase交易方法进行有效计数

+0

如何指定这些规则?你能帮我吗? – Abhinav422

+0

@ Abhinav422那里,我已经更新了我的答案 – faruk