Firebase白名单和recyclerView

时间:2016-11-21 17:27:46

标签: android firebase firebase-security firebaseui

 {
"Events" : {
"events" : {
   "-KT5UMQAhDHs1bB8bKLc" : {
    "activity" : "biking",
    "address" : "54°05'45.8\"N 28°19'02.9\"E, просп. Мира 9, Жодино, Беларусь",
    "category" : "sport",
    "creatorID" : "m11EvlP19OSbEz8XYl2MsNCwGXX2",
    "date" : 1475431200689,
    "forFriends" : true,
    "info" : "вттчтвт",
    "name" : "ьаьатвтвтт",
    "uid" : "-KT5UMQAhDHs1bB8bKLc"
  },

  "-KUSsl7RaL-dVoDCoSYT" : {
    "activity" : "picnic",
    "address" : "Узденский район, Узденский район, Беларусь",
    "category" : "entertainment",
    "creatorID" : "1RXDSJzSEXakxvNdM41Ae3nbHN72",
    "date" : 1477328400000,
    "forFriends" : false,
    "info" : "45",
    "name" : "Test of date",
    "uid" : "-KUSsl7RaL-dVoDCoSYT"
  }
},

"FriendsOF" : {
"NuKweeGv8zTgt1Vi9RcU3i1u86U2" : {
  "1RXDSJzSEXakxvNdM41Ae3nbHN72" : true
},
"m11EvlP19OSbEz8XYl2MsNCwGXX2" : {
  "1RXDSJzSEXakxvNdM41Ae3nbHN72" : true
}
 },

"Users" : {
  "1RXDSJzSEXakxvNdM41Ae3nbHN72" : {
  "email" : "*@gmail.com",
  "name" : "Алексей Гвоздицкий",
  "picture" : "*.jpg"
 },
"NuKweeGv8zTgt1Vi9RcU3i1u86U2" : {
  "email" : "*@gmail.com",
  "name" : "Ольга Гвоздицкая",
  "picture" : "*.jpg"
},
"m11EvlP19OSbEz8XYl2MsNCwGXX2" : {
  "email" : "*@gmail.com",
  "name" : "Егор Александров",
  "picture" : "*.jpg"
 }
 }
}

我有一个"事件"的列表。每个"事件"可以" forFiends"仅限(仅当当前用户在事件创建者和#34; FriendsOF"列表中时,他才能看到此事件。朋友,它是白名单)。所有可用于我想在RecyclerView中表示的当前用户事件。

我被困了。我可以获取所有数据快照,然后在客户端进行过滤。但这不是绝地的方式,因为我加载了大量不必要的数据。另一种解决方案是,如果用户不应该看到它,则拒绝访问事件。但我不明白该怎么做。我的参考是mEventsRef = FirebaseDatabase.getInstance().getReference().child("Events").child("events");我可以为

制定规则

"events":{ "$eventId":{".read":....} }

所以根据this guide我会得到空的recyclerView,因为" 错误回调是用PERMISSION_DENIED "

触发的

请帮我解决我的问题!

0 个答案:

没有答案