Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 使用firebase中的属性值筛选查看的数据_Angularjs_Firebase_Angularfire - Fatal编程技术网

Angularjs 使用firebase中的属性值筛选查看的数据

Angularjs 使用firebase中的属性值筛选查看的数据,angularjs,firebase,angularfire,Angularjs,Firebase,Angularfire,我有如下Firebase数据结构: hotelboard Events -K09Iy9pa6FEA0rmmEMH emailId:"said@gmail.com" images 0:"data:image/png;base64,iVBORw0KGgoAAAANSUhEU" post: "This is event 1" title:"Event 1" Facilities -K09I

我有如下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等于用户登录时可以查看其帖子的登录用户名,方法如下:

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   +
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已经解决了

我遵循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   +
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的建议,现在还不清楚你到底想要什么:当你说“用户登录时只能查看他的帖子”时,这是否意味着当用户登录时,他们应该能够看到包含他的电子邮件的事件、设施等?如果是这种情况,那么结构将不允许查询,因为它们有一层太深(请参阅最新更新中的深层路径查询)。还有一个建议,将emailId与帖子分离:如果用户更改了电子邮件怎么办?这可以通过使用一个/users/node来解决,每个用户都有一个userId(一个随机生成的id),您可以使用该id将每个条目与该用户关联。@Jay我希望该用户只查看自己的帖子。在我使用
startAt()之前,endAt()使用.priority,它是我在post创建方法中添加的。如果你看这里,你可以看到我的代码。我在上一次更新中阅读了深层路径查询,但在那里他们编写了self
ref.orderByChild(“维度/高度”)。在….
上,我希望动态获取路径。问题仍然有些模糊,因为所有四个节点都有“post”子节点。你想在活动、设施、优惠、餐厅中检索“帖子”吗?用户和帖子之间的关系定义在哪里?就这一点而言,这些职位在哪里?这些东西都不在样本数据中。到目前为止,您尝试了什么代码?