2017-10-14 105 views
1

一个问题,我该如何做这个查询?Firebase查询到节点

架构

-|conversations 
-|$uid 
    -|fromID 
     -|message 
      name: string 
      date: date 
      body: string 
      like: boolea 

如果用户是消息的发射器,所述从动件的所有集合到conversations/$uid和随后用户处于01​​。

我可以列出这样this.followers = this.af.database.list(conversations/${this.currentAuth.uid});

但是,与跟随用户的关注者?此图

添加到一个更好的解释 enter image description here

+0

fromID是跟随用户的ID? – Wandrille

+0

来自ID的用户是追随者,但同一用户将您的密钥插入fromID中的其他用户此用户是其他用户的后续 –

回答

0

解决方案增加了两个节点。追随者,并按照每个配置文件保存所有密钥。

1

所以,用database.list,你得到消息的数组。

对于列表中的每条消息,您都添加了元数据。

,你可以让你的信息与关键中的关键(所以跟随的用户ID):"$key"

例如:

const message = this.af.database.list(conversations/${this.currentAuth.uid}); 

message[0].$key会给你跟随的用户的USER_ID。

编辑1:

我真的不明白你正在尝试做的。但是,你在评论认为这将是:

If you use Lodash

这会给你所有this.currentAuth.uid的对话中fromID:

_.filter(
    this.af.database.list(conversations), 
    function (o) => { 
     return Object.keys(o).indexOf(this.currentAuth.uid) != -1 
    } 

+0

mmm我不知道这是否有效。在模式中如果我使用'const message = this.af.database.list(conversations/$ {this.currentAuth.uid});'我将得到用户this.currentAuth.uid的所有对话,如果你打电话给'message [0]。$ key'你得到了 - | fromID,这是你的追随者之一没有遵循。下面的查询可能是这样的: 我需要找到多少次'currentAuth.uid'存在于节点对话中,因为从ID参数 –

+0

如果您询问当前用户的对话,您将获得下面的内容,但如果你问...当前用户在对话中存在多少次fromID?你将得到跟随的用户 –

+1

我已经更新了我的答案与你所说的。 – Wandrille