使用 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
我有这样的 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