getstream 聚合可以处理 "object" 属性 的属性吗
can getstream aggregation work on properties of the "object" property
我设置聚合规则:
{{ object.experienceId }}
在 getstream.io 中的通知提要上期望它基于 object.experienceId 聚合,但它似乎将所有内容聚合为一个,而不考虑 object.experienceId。我是否误解了聚合的工作原理?可能是什么问题?
var activity = {
time: new Date(),
verb: 'created',
actor: { id: 1, name: 'User One' },
object: {
id: 2,
experienceId: 12,
caption: 'Moment 1',
photo:
{ id: '314e00a2-2455-11e5-b696-feff819cdc9f',
mainColor: 'ff3333',
width: 1000,
height: 400 },
createdBy: {
id: 1, name: 'User One'
},
type: 'Moment' },
context: 'http://derbyapp.co'
};
notifications.addActivity(activity,
这不起作用的原因是对象字段应为字符串 (http://getstream.io/docs/#add-remove-activities),因此在聚合规则中您不能引用活动对象字段的属性。这个问题有多种解决方案。
首先,您可以将 experienceId 作为 activity 对象的单独 属性 提供,因此您可以使用聚合模板 {{ experienceId }}
,因为所有附加属性都提供给 activity 可以在聚合规则中使用 (http://getstream.io/docs/#aggregated-feeds).
其次,您可以在 activity 的任何附加字段上提供一个对象,例如项目。附加字段可以引用它们的子属性,因此您可以使用聚合规则 {{ item.experienceId }}
。但要注意不要将 getstream.io API 的数据发送到 getstream.io 末尾实际上不需要的数据,在本例中,您还可以发送对象的 id 字段,而不是整个对象,并在从 API 检索活动后从本地数据库检索对象(演员字段也是如此)。如果您不想处理为此所需的逻辑,您可以使用 getstream 的集成库之一(有用于 rails/django/laravel 等的库)。
var activity = {
time: new Date(),
verb: 'created',
actor: 1,
object: '1',
experienceId: 12
};
我设置聚合规则:
{{ object.experienceId }}
在 getstream.io 中的通知提要上期望它基于 object.experienceId 聚合,但它似乎将所有内容聚合为一个,而不考虑 object.experienceId。我是否误解了聚合的工作原理?可能是什么问题?
var activity = {
time: new Date(),
verb: 'created',
actor: { id: 1, name: 'User One' },
object: {
id: 2,
experienceId: 12,
caption: 'Moment 1',
photo:
{ id: '314e00a2-2455-11e5-b696-feff819cdc9f',
mainColor: 'ff3333',
width: 1000,
height: 400 },
createdBy: {
id: 1, name: 'User One'
},
type: 'Moment' },
context: 'http://derbyapp.co'
};
notifications.addActivity(activity,
这不起作用的原因是对象字段应为字符串 (http://getstream.io/docs/#add-remove-activities),因此在聚合规则中您不能引用活动对象字段的属性。这个问题有多种解决方案。
首先,您可以将 experienceId 作为 activity 对象的单独 属性 提供,因此您可以使用聚合模板 {{ experienceId }}
,因为所有附加属性都提供给 activity 可以在聚合规则中使用 (http://getstream.io/docs/#aggregated-feeds).
其次,您可以在 activity 的任何附加字段上提供一个对象,例如项目。附加字段可以引用它们的子属性,因此您可以使用聚合规则 {{ item.experienceId }}
。但要注意不要将 getstream.io API 的数据发送到 getstream.io 末尾实际上不需要的数据,在本例中,您还可以发送对象的 id 字段,而不是整个对象,并在从 API 检索活动后从本地数据库检索对象(演员字段也是如此)。如果您不想处理为此所需的逻辑,您可以使用 getstream 的集成库之一(有用于 rails/django/laravel 等的库)。
var activity = {
time: new Date(),
verb: 'created',
actor: 1,
object: '1',
experienceId: 12
};