我尝试创建一个页面,显示数据库中属于同一组织的所有用户。
我的用户存储如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ListView
android:id="@+id/listView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:dividerHeight="1dp"
>
</ListView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:id="@+id/tvfrag"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="219dp" />
我知道我必须将用户发布到我的用户列表组件,并且我正在努力弄清楚如何只发布其profile.organization与登录用户profile.orgainzation相匹配的用户。
这将返回所有用户,我做到了这一点:
Accounts.createUser({
email: email,
password: password,
profile:{
firstName: first,
lastName: last,
type: "Member",
organization: organization,
created: date
}
});
我尝试使用您在此处看到的下一个代码块,但它不起作用,可能由于多种原因,它甚至会抛出错误,说我无法使用Meteor.user()服务器端,我必须使用this.user()......但是它没有工作:
return Meteor.users.find();
我不知道从哪里开始。任何帮助将不胜感激!
答案 0 :(得分:0)
我认为这可能有用(未经测试)。这是服务器端功能。
Meteor.publish("organizationUsers", function () {
if (this.userId) {
var user = Meteor.users.findOne(this.userId);
var org = user.profile.organization;
return Meteor.users.find({'profile.organization': org});
}
});
客户端,您可以使用以下方法过滤所需的用户(并排除当前用户)
Meteor.users.find({'profile.organization': org, '_id' : {$not : Meteor.userId()}});