GetStream 在不同的提要中创建相同的 activity
GetStream creates same activity in different feeds
我构建这段代码是为了将标签添加到我的 标签提要。
buildActivity = (model,obj) => {
return {
...{
actor: `user:model.user`,
verb: 'is',
object: `model:${model.id}`,
foreign_id: `model:${model.id}`,
time: model.createdAt.toDate(),
},
...(obj ? obj : {})
}
}
addActivitiesToTagFeed = async (model,tags) => {
const promises = []
for(let i=0;i<tags.length;i++){
const tag = tags[i]
const activity = buildActivity(model,{target: `tag:${tag}`})
const feed = stream.feed('tag', tag)
promises.push(feed.addActivity(activity))
}
await Promise.all(promises)
}
我限制最多 3 个标签。我可以喜欢
tag:netflix
tag:films
tag:suspense
问题是 addActivity 创建的 activity 对所有标签都是一样的。相同的目标,甚至相同的 activity id。它打破了我的 'tag_aggregated',它只跟在其中一个标签之后。
有人知道如何解决吗?
好消息
Feed(在我的例子中是 tag
feed)不能有具有相同 foreign_id + 时间 的不同活动。为了修复我更改了我的代码
buildActivity = (model,obj) => {
return {
...{
actor: `user:model.user`,
verb: 'is',
object: `model:${model.id}`,
foreign_id: `model:${model.id}`,
time: model.createdAt.toDate(),
},
...(obj ? obj : {})
}
}
addActivitiesToTagFeed = async (model,tags) => {
const promises = []
for(let i=0;i<tags.length;i++){
const tag = tags[i]
// THIS LINE changing the foreign_id for each activity
const activity = buildActivity(model,{target: `tag:${tag}`,foreign_id: `model:${model.id}:${tag}`})
const feed = stream.feed('tag', tag)
promises.push(feed.addActivity(activity))
}
await Promise.all(promises)
}
它解决了我的问题。在 GetStream 文档中没有提到它但是有道理,因为 foreign_id
+ time
是查找唯一记录的辅助键。
我构建这段代码是为了将标签添加到我的 标签提要。
buildActivity = (model,obj) => {
return {
...{
actor: `user:model.user`,
verb: 'is',
object: `model:${model.id}`,
foreign_id: `model:${model.id}`,
time: model.createdAt.toDate(),
},
...(obj ? obj : {})
}
}
addActivitiesToTagFeed = async (model,tags) => {
const promises = []
for(let i=0;i<tags.length;i++){
const tag = tags[i]
const activity = buildActivity(model,{target: `tag:${tag}`})
const feed = stream.feed('tag', tag)
promises.push(feed.addActivity(activity))
}
await Promise.all(promises)
}
我限制最多 3 个标签。我可以喜欢
tag:netflix
tag:films
tag:suspense
问题是 addActivity 创建的 activity 对所有标签都是一样的。相同的目标,甚至相同的 activity id。它打破了我的 'tag_aggregated',它只跟在其中一个标签之后。
有人知道如何解决吗?
好消息
Feed(在我的例子中是 tag
feed)不能有具有相同 foreign_id + 时间 的不同活动。为了修复我更改了我的代码
buildActivity = (model,obj) => {
return {
...{
actor: `user:model.user`,
verb: 'is',
object: `model:${model.id}`,
foreign_id: `model:${model.id}`,
time: model.createdAt.toDate(),
},
...(obj ? obj : {})
}
}
addActivitiesToTagFeed = async (model,tags) => {
const promises = []
for(let i=0;i<tags.length;i++){
const tag = tags[i]
// THIS LINE changing the foreign_id for each activity
const activity = buildActivity(model,{target: `tag:${tag}`,foreign_id: `model:${model.id}:${tag}`})
const feed = stream.feed('tag', tag)
promises.push(feed.addActivity(activity))
}
await Promise.all(promises)
}
它解决了我的问题。在 GetStream 文档中没有提到它但是有道理,因为 foreign_id
+ time
是查找唯一记录的辅助键。