我无法通过电子邮件找到用户(parse.com)

时间:2014-07-16 11:24:10

标签: angularjs parse-platform

我有一个班级“用户”。我的用户通过电子邮件“'qq@qq.qq”

我做了那个查询:

var UserSearch = Parse.Object.extend("User");
var query = new Parse.Query(UserSearch);
query.equalTo('email', 'qq@qq.qq');
query.first({
  success: function(object) {
    console.log('success');
    console.log(object);
  },
  error: function(error) {
    alert("Error: " + error.code + " " + error.message);
  }
});

收到一个空物。

我做错了什么?

1 个答案:

答案 0 :(得分:3)

这里有两个问题之一。您要么使用特殊类Users,它没有字符串形式的“User”,要么您没有读取对象的权限。实际上,其他用户不应该能够查询Users类。它应该通过云功能进行管理,您可以在其中处理安全性并仅返回某些数据。

首先尝试:

var query = new Parse.Query(Parse.User);
query.equalTo('email','qq@qqq.com');
query.first().then(function(user) {
  console.log(user);
}, function(err) {
  console.log(err);
});

或者,使用云功能,可以使用主密钥进行查询:

Parse.Cloud.define('getUserByEmail', function(request, response) {
  var email = request.params.email;
  var query = new Parse.Query(Parse.User);
  query.equalTo('email', email);
  query.first({ useMasterKey: true }).then(function(user) {
    response.success(user.get('username'));
  }, function(err) {
    response.error(err);
  });
});

通过JavaScript运行:

Parse.Cloud.run('getUserByEmail', {email:'qq@qqq.com'}).then(function(username) {
  console.log(username);
}, function(err) {
  console.log(err);
});

https://parse.com/docs/cloud_code_guide#functions

https://parse.com/docs/js_guide#cloudfunctions