是否有任何meteor包来实现自定义用户集合的用户状态而不是默认用户集合。我实现“myUser”集合而不是默认的“meteor.user”集合,我想向它添加状态字段?
答案 0 :(得分:0)
您可以将任何字段添加到服务器端的用户对象的根目录,只需确保您在客户端订阅这样的出版物
/* eslint-disable prefer-arrow-callback */
import { Meteor } from 'meteor/meteor';
Meteor.publish('userExtraFields', function userExtraFields() {
if (this.userId) {
return Meteor.users.find(
{ _id: this.userId },
{ fields: { currentTeamId: 1, teams: 1, isAdmin: 1, isCreator: 1 } }
);
}
return false;
});
答案 1 :(得分:0)
如果您有自定义集合,请在服务器端执行此操作:
export const myUser = new Mongo.Collection('myUser');
const userData = (userId) => {
return myUser.find(userId);
}
现在,您将拥有一个对象,其中包含服务器端可访问的所有用户字段。要添加状态字段,在客户端上只需对用户执行的每个功能执行Meteor.call。 (单击事件,提交到db等)
Meteor.methods({
'userOnline'(userId) {
myUser.update({_id:userId},{$set:{onlineDate:new Date()}})
}
}
Meteor.call('userOnline', userId);
然后查询您的数据库,了解您想要的超时。最后n秒,分钟,小时。
query = {
onlineDate: { // 18 minutes ago (from now)
$gt: new Date(ISODate().getTime() - 1000 * 60 * 18)
}
}