Meteor & account-base - 如何获取不同用户的数据
Meteor & account-base - how to get data for different users
我在 Meteor 中从 Meteor-admin 存根创建了基本项目:(https://github.com/yogiben/meteor-admin)
我需要为所有用户显示头像,而不仅仅是当前用户。
为了显示用户的头像,我需要他的电子邮件地址。 (我正在使用 utilities:avatar https://atmospherejs.com/utilities/avatar)
问题:我应该对项目进行哪些调整才能访问其他用户的数据?
可能跟发布用户有关系
目前我有:
{{> avatar user=getAuthor shape="circle" size="small"}}
getAuthor: ->
console.log 'Owner:'
console.log @owner
user = Meteor.users.findOne(@owner)
console.log user
user
这会为所有用户正确打印 Owner: @owner
(id),但是 user
object 只会为当前用户填充。
我在server-side中也有这个代码:
Meteor.publishComposite 'user', ->
find: ->
Meteor.users.find _id: @userId
children: [
find: (user) ->
_id = user.profile?.picture or null
ProfilePictures.find _id: _id
]
(children / ProfilePicture 无关紧要)
我认为 account-base
图书馆关闭了发布之类的?感谢您的帮助!
奖金问题:我只想访问有关用户(电子邮件地址)的一些信息。
拥有collection:Meteor.users
要访问其他用户的数据,只需将其发布到 server-side:
Meteor.publish 'userData', ->
Meteor.users.find()
在客户端,您不必使用任何 userData
引用。只需访问它:
Meteor.users.findOne(someId)
要仅允许访问特定信息,请使用 fields
参数发布:
Meteor.publish 'userData', ->
Meteor.users.find({},{fields: {'_id', 'emails', 'username'}})
如果删除包 autopublish
,则需要明确指定服务器向客户端发送的内容。您可以通过 Meteor.publish
和 Meteor.subscribe
.
执行此操作
例如,要发布您可以执行的所有用户的电子邮件地址:
if (Meteor.isServer) {
Meteor.publish('emailAddresses', function() {
return Meteor.users.find({}, {
fields: {
'email': 1
}
});
});
}
之后需要在客户端订阅发布:
if (Meteor.isClient) {
Meteor.subscribe("emailAddresses");
}
我在 Meteor 中从 Meteor-admin 存根创建了基本项目:(https://github.com/yogiben/meteor-admin)
我需要为所有用户显示头像,而不仅仅是当前用户。 为了显示用户的头像,我需要他的电子邮件地址。 (我正在使用 utilities:avatar https://atmospherejs.com/utilities/avatar)
问题:我应该对项目进行哪些调整才能访问其他用户的数据?
可能跟发布用户有关系
目前我有:
{{> avatar user=getAuthor shape="circle" size="small"}}
getAuthor: ->
console.log 'Owner:'
console.log @owner
user = Meteor.users.findOne(@owner)
console.log user
user
这会为所有用户正确打印 Owner: @owner
(id),但是 user
object 只会为当前用户填充。
我在server-side中也有这个代码:
Meteor.publishComposite 'user', ->
find: ->
Meteor.users.find _id: @userId
children: [
find: (user) ->
_id = user.profile?.picture or null
ProfilePictures.find _id: _id
]
(children / ProfilePicture 无关紧要)
我认为 account-base
图书馆关闭了发布之类的?感谢您的帮助!
奖金问题:我只想访问有关用户(电子邮件地址)的一些信息。
拥有collection:Meteor.users
要访问其他用户的数据,只需将其发布到 server-side:
Meteor.publish 'userData', ->
Meteor.users.find()
在客户端,您不必使用任何 userData
引用。只需访问它:
Meteor.users.findOne(someId)
要仅允许访问特定信息,请使用 fields
参数发布:
Meteor.publish 'userData', ->
Meteor.users.find({},{fields: {'_id', 'emails', 'username'}})
如果删除包 autopublish
,则需要明确指定服务器向客户端发送的内容。您可以通过 Meteor.publish
和 Meteor.subscribe
.
例如,要发布您可以执行的所有用户的电子邮件地址:
if (Meteor.isServer) {
Meteor.publish('emailAddresses', function() {
return Meteor.users.find({}, {
fields: {
'email': 1
}
});
});
}
之后需要在客户端订阅发布:
if (Meteor.isClient) {
Meteor.subscribe("emailAddresses");
}