【问题标题】:Related objects in activity feed活动提要中的相关对象
【发布时间】:2017-06-03 04:12:50
【问题描述】:

我正在构建一个活动源应用程序,用户可以在其中对每个活动源点赞/cmets。我浏览了 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 是我的应用程序数据库中的对象吗?这是否意味着在检索活动时,我必须访问我的数据库才能检索完整的提要?

  2. Feed:12 之前从其他用户那里得到的点赞和cmets 很少。如何在用户时间线提要上获得完整的点赞/cmets?

  3. 如果我想自定义视图,比如说我想显示所有用户(图像、姓名、个人资料等)以及带有类似于 FB 的时间戳的评论,该怎么办?我是否需要将这些属性作为每个 Feed 的附加参数发送?

谢谢,

【问题讨论】:

    标签: getstream-io


    【解决方案1】:

    是的,当您从 Stream 获取提要并且我们将这些参考信息(例如 user:1comment:12)返回给您时,我们希望您能够从您的数据库中“丰富”这些详细信息。

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

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

    我们不推荐的做法是为您可能会改变的事物添加字符串引用。例如,如果您使用 actor: "user:ian" 而不是我的 user_id,如果我稍后更改我的用户名,那么您可能无法正常工作。

    【讨论】:

    • 感谢您的友好回复。我正在寻找长期参与的高端计划的付费订阅,但我不得不等待一个多月才能得到这个答案。所以我决定自己建立stream,因为这么长时间等待他们的支持是很可怕的。
    猜你喜欢
    • 2023-03-05
    • 2011-05-15
    • 2013-01-29
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多