使用 firebase 中的属性值过滤查看的数据

Filter the data viewed using properties value in firebase

我有这样的 Firebase 数据结构:

hotelboard
 Events
     -K09Iy9pa6FEA0rmmEMH
        emailId:"said@gmail.com"
        images
            0:"data:image/png;base64,iVBORw0KGgoAAAANSUhEU"
        post: "This is event 1"
        title:"Event 1"

 Facilities
     -K09Ibsqz5L82PUoCEjY
        emailId: "said@gmail.com"
        post: "this is fac 1"
        title: "Facility 1"
 Offers
     -K09IipPdR7We_D5Tzb9
        emailId: "said@gmail.com"
        post: "this is offer 1"
        title: "Offer 1"
 Restaurant
     -K0O-kIJASIhOa_gWKWY
        emailId: "said1@gmail.com"
        post: "sdgsdgsdgasdasdasdd"
        title: "sdgsgsdgsdg"

我正在通过表单的下拉列表添加活动、餐厅、优惠和设施。

在我以这种方式实现我的应用程序之前,我可以通过 emailId 过滤视图中的数据,该 emailId 等于用户在登录时只能查看他的 post 的登录用户名,这样:

var url = "https://hotelboard.firebaseio.com/";
var fb = new Firebase(url);

var fbObj = fb.startAt($scope.username).endAt($scope.username); 

$scope.articles = $firebaseArray(fbObj);

并在我的视图中迭代数组。

但是在我用结构完成这个实现之后,上面的代码不再工作了。

我不知道如何以我想要查看的方式查询我的数据。找了很多资料说明可以用

fb.child("Event").startAt........

但我不想写 child("child_name").... 我希望它是动态获取的,它在结构中如何。

请提前帮助并谢谢...

已解决更新

我听从了 JAY 的建议,我添加了一个用户节点,它为每个用户提供了一个唯一的 ID,并在 ID 下推送了我的数据。 所以我的数据结构现在看起来像这样:

hotelboard
  users
    0affbcbd-e29a-4b44-9036-e2086fb8d51e
      Events
        -K0YGDwJ4xgBjYql-39W   +

        -K0YGL7ziuRh-IioF8yC
           emailId:"said@gmail.com"
           post:"This is post 1"
           title:"Post 1"
     Facilities   +
     Restaurant   +
   19cc2166-6b1f-4ef9-8586-0735c6d92a4e
     Events       +
     Offers       +
     Restaurant   +

在我的控制器中,我过滤了每个用户都可以查看自己的数据 posts

var fbObj = fb.child("users/").orderByKey().equalTo(fbAuth.uid);

谢谢指教JAY

已解决

我听从了 JAY 的建议,并添加了一个用户节点,它为每个用户提供了一个唯一的 ID,并在 ID 下推送了我的数据。所以我的数据结构现在看起来像这样:

hotelboard
  users
    0affbcbd-e29a-4b44-9036-e2086fb8d51e
      Events
        -K0YGDwJ4xgBjYql-39W   +

        -K0YGL7ziuRh-IioF8yC
           emailId:"said@gmail.com"
           post:"This is post 1"
           title:"Post 1"
     Facilities   +
     Restaurant   +
   19cc2166-6b1f-4ef9-8586-0735c6d92a4e
     Events       +
     Offers       +
     Restaurant   +

在我的控制器中我过滤了每个用户只能查看他自己的帖子的数据

var fbObj = fb.child("users/").orderByKey().equalTo(fbAuth.uid);

谢谢指教JAY