活动源中的相关对象

时间:2017-04-26 08:43:13

标签: getstream-io

我正在构建一个活动源应用程序,用户可以在其中查看/评论每个活动源。我浏览了GetStream.io文档,看起来我必须使用对象ID发送活动。

{  
   id:"ef696c12-69ab-11e4-8080-80003644b625",
   actor:"User:1",
   object:"Comment:12",
   started_at:"2014-11-11T15:06:16+01:00",
   target:"Feed:100",
   time:"2014-11-11T14:06:30.494",
   verb:"add"
}
  1. User:1Feed:12是我的应用数据库中的对象?这是否意味着,在检索活动时,我将不得不点击我的数据库来检索完整的Feed?

  2. 假设Feed:12之前很少有其他用户喜欢和评论。如何获得有关用户时间线Feed的完整喜欢/评论?

  3. 如果我想自定义视图,我想要显示所有用户(图像,名称,配置文件等)以及带有类似于FB的时间戳的注释,该怎么办?我是否需要将这些属性作为每个Feed的附加参数发送?

  4. One level nested comments on each feed activity like FB

    谢谢,

1 个答案:

答案 0 :(得分:1)

是的,当您从Stream中提取Feed时,我们会将这些引用(例如user:1comment:12)退回给您,我们希望您能够充实"您数据库中的详细信息。

我们的用户通常会跟踪模型的名称(例如user)和user_id(例如1)。当您获得Feed并将其放入哈希映射时,您将遍历这些活动,提取所有actor属性,并执行select * from user where id in (1,3,5,6,9,12)之类的单个查找,以便您&# 39;只对所有用户对象或所有评论对象或其他任何内容进行一次数据库访问。然后,在您的哈希映射中替换这些活动,这样您就可以拥有actor: <object for User 9>以及您的UI展示所需的任何其他属性。

然后对您在活动中传递的其他引用执行相同操作,依此类推。

我们不建议的事情是为可能改变的事情添加字符串引用。例如,如果你有actor: "user:ian"而不是我的user_id,如果我以后更改了我的用户名,那么事情可能无法在你身边正常运作。