我正在尝试获取已登录用户的联系人列表,但我不知道如何查找当前用户。我从Parse.com上知道你用的是Parse.User.current(),Stackmob有这样的东西吗?
下面的代码演示了我正在寻找的东西。
$(window).load(function () {
var user = StackMob.User;
var Contacts = StackMob.Model.extend({ schemaName: 'contacts' });
var myContacts = new Contacts();
var q = new StackMob.Collection.Query();
q.equals('sm_owner', user);
q.orderAsc('FirstName'); //sort by title in ascending order
q.setRange(0, 9); //get the first 10. second 10 would be setRange(10,19)
myContacts.query(q, {
success: function (model) {
console.debug(model.toJSON()); //JSON array of matching Todo objects
},
error: function (model, response) {
console.debug(response);
}
});
});我使用下面的代码得到了我想要的东西,但是拥有('sm_owner','user/thomas')是没有用的。
$(window).load(function () {
var Contacts = StackMob.Model.extend({ schemaName: 'contacts' });
var myContacts = new Contacts();
var q = new StackMob.Collection.Query();
q.equals('sm_owner', 'user/thomas');
q.orderAsc('FirstName'); //sort by title in ascending order
q.setRange(0, 9); //get the first 10. second 10 would be setRange(10,19)
myContacts.query(q, {
success: function (model) {
console.debug(model.toJSON()); //JSON array of matching Todo objects
},
error: function (model, response) {
console.debug(response);
}
});
});发布于 2013-05-31 02:47:57
听起来你想用StackMob的schema permissions来做这件事。
例如,您可以设置权限,使用户只能读取他们自己创建的contact对象。
当用户创建对象时,sm_owner字段会自动设置为当前登录的用户。要利用这一点,您可以将contacts模式设置为只允许用户读取他们自己的联系人。这样,按当前用户进行过滤是在服务器端完成的,您不必专门在客户端查询它。
如何设置:
转到模式配置和编辑,选择您的模式。在“架构权限”下,为Read、Update和Delete选择Logged In Permissions -> Allow to sm_owner。
现在,当您查询contacts模式时,只会返回(sm_owner ==当前用户)的contact对象。然后,您可以简单地删除此行:
q.equals('sm_owner', 'user/thomas');https://stackoverflow.com/questions/16835694
复制相似问题