我有一个班级“用户”。我的用户通过电子邮件“'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);
}
});
收到一个空物。
我做错了什么?
答案 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);
});