我正在通过getstream.io实现类似Facebook的反应。 发布和删除活动("反应")运行正常。
基础:
已删除和新的一个反应的示例:
{
"deleted": [
"d5b1aee0-5a1a-11e6-8080-80015eb61bf9",
"49864f80-5a19-11e6-8080-80015eb61bf9",
"47fe7700-5a19-11e6-8080-80015eb61bf9",
"4759ab80-5a19-11e6-8080-80015eb61bf9",
"437ce680-5a19-11e6-8080-80015eb61bf9"
],
"new": [
{
"actor": "user:55d4ab8a11234359b18f06f6:Manuel Reil",
"verb": "support",
"object": "control:56bf2fb884e5c0756e910755",
"target": null,
"time": "2016-08-04T11:48:23.168000",
"foreign_id": "55d4ab8a11234359b18f06f6:support:56bf2fb884e5c0756e910755",
"id": "58d9c000-5a39-11e6-8080-80007c3c41d8",
"to": [],
"origin": "control:56bf2fb884e5c0756e910755"
}
],
"published_at": "2016-08-04T11:48:23.546708+00:00"
}
我面临的挑战:
foreign_id
)时 - 为什么在已删除的数组中出现5个ID?ids
数组。潜在方法:
foreign_ids
吗?ids
,但这看起来几乎是荒谬的。 非常感谢。
答案 0 :(得分:1)
通过foreign_id
删除活动会删除Feed中存在给定foreign_id的所有活动。这是使用foreign_id字段的主要优点之一,它允许级联删除一组活动。 (例如,帖子和喜欢是一个典型的用例,你想要删除一个帖子以及与之相关的所有喜欢。)
使用foreign_id的另一个好处是您不必跟踪Stream生成的ID。
您应该能够通过选择唯一的foreign_id
字段的值来解决您的第一个问题(例如,数据库中的对象ID),这样您仍然可以轻松删除并避免级联删除行为。
关于您的第二个问题,如果您根据实时更新更新UI,则表示您已经从同一个Feed中读取,并且您拥有带有ID和foreign_ids的活动列表。从activity_id中选择活动应该只是创建某种内存映射(例如,向DOM添加data-activity_id属性)。