如何将数据数组发送到Parse Cloud Code?

时间:2014-07-18 22:51:44

标签: java javascript android arrays parse-platform

我试图在Parse云代码函数参数中发送一组联系人电子邮件(字符串)。我是这样做的:

HashMap<String, ArrayList<String>> params = new HashMap<>();
ArrayList<String> array = new ArrayList<>();
array.add("contact email 1");
array.add("contact email 2");
array.add("contact email 3");

params.put("contacts", array);

ParseCloud.callFunctionInBackground("cloudFunctionName", params, new FunctionCallback<Object>() {
    @Override
    public void done(Object o, ParseException e) {
        // do something
    }
});

我在这里定义我的云功能: contacts应该是:{"contacts" : ["contact email 1", "contact email 2", "contact email 3"]}。我迭代每封电子邮件,并为每个电子邮件执行一些逻辑。

var _ = require("underscore");

Parse.Cloud.define("cloudFunctionName", function (request, response) {
var contacts = request.params.contacts;

_.each(contacts, function(contactEmail) {
    var userQuery = Parse.Query(Parse.User);

    userQuery.equalTo("email", contactEmail);

    userQuery.first().then(
        function(user) {
            // there is a user with that email
        },
        function(error) {
            // no user found with that email
});

});

我遇到的问题是有时contactEmail是未定义的。

我在userQuery.equalTo行上收到错误:Result: TypeError: Cannot call method 'equalTo' of undefined(&#34; email&#34;,contactEmail);

即使我写if(typeof contactEmail != "undefined") { userQuery.equalTo("email", contactEmail); },我仍然会收到错误。

我还检查emailString在将其添加到数组之前是否为空?

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

更新您的JavaScript以创建用户查询,如下所示:

var userQuery = new Parse.Query(Parse.User);