手册指定 https://getstream.io/docs/#uniqueness这种独特性是基于foreign_id
and time
fields.
我有一个用户参加特定活动的活动。该事件有自己的开始日期,我想在时间线中显示它,因此我将其作为额外数据提交(以及名称和位置等,但我在此处省略了这些数据以防止混乱)。
我将具有以下活动数组的活动提交到用户源。请注意,我在阿姆斯特丹,(目前)位于 GMT+0200 时区:
Array
(
[actor] => User:3
[verb] => join
[object] => Event:2
[event_start] => 2016-09-26T19:00:00+0200
[to] => Array
(
[0] => notification:2
)
[foreign_id] => join:2
[time] => 2016-09-16T13:29:13+0200
)
当我检索该用户的用户源时,结果如下:
{
"duration":"17ms",
"next":"",
"results":[
{
"actor":"User:3",
"event_start":"2016-09-26T19:00:00+0200",
"foreign_id":"join:2",
"id":"cb0f4a80-7c00-11e6-8080-80010479bedb",
"object":"Event:2",
"origin":null,
"target":null,
"time":"2016-09-16T11:29:13.000000",
"to":[
"notification:2"
],
"verb":"join"
}
]
}
请注意日期字段中的差异。两者都作为 ISO8601 字段提交,但只有event_start
字段就这样返回。这time
字段以不同的格式返回,但没有任何时区指示符。它显然已转换为 UTC 时间,但缺少尾随 Z 应该表明 https://en.wikipedia.org/wiki/ISO_8601#UTC。因此我不能可靠地将它用作时间指示器。
我可以通过向活动数组添加另一个时间字段来解决这个问题(它工作正常并返回正确的 ISO8601 日期),但这感觉相当多余。
这是一个错误吗?我做错了什么或者我们不应该依赖time
指示活动发生时间的字段?